From 74f3badcdf2287238e820858e3afffd9a9ad569b Mon Sep 17 00:00:00 2001 From: Camm Maguire Date: Thu, 16 Jul 2026 12:43:44 -0400 Subject: [PATCH] Import gcl27_2.7.1-33.debian.tar.xz [dgit import tarball gcl27 2.7.1-33 gcl27_2.7.1-33.debian.tar.xz] --- debian/README.Debian | 28 + debian/changelog | 4712 +++++++ debian/control | 82 + debian/control_ | 39 + debian/control_27 | 82 + debian/control_cvs | 39 + debian/copyright | 97 + debian/debian-autoloads.el | 4 + debian/gcl-pkg.el.in | 3 + debian/gcl.sh | 33 + debian/gcl27.templates | 26 + debian/in.gcl-clc.sh | 146 + debian/in.gcl-doc.README.Debian | 9 + debian/in.gcl-doc.doc-base.main | 15 + debian/in.gcl-doc.doc-base.si | 15 + debian/in.gcl-doc.doc-base.xgcl | 15 + debian/in.gcl-doc.docs | 1 + debian/in.gcl-doc.info | 3 + debian/in.gcl-doc.install | 9 + debian/in.gcl-tk-doc.doc-base.tk | 15 + debian/in.gcl-tk-doc.info | 1 + debian/in.gcl-tk-doc.install | 4 + debian/in.gcl-tk.install | 1 + debian/in.gcl-tk.lintian-overrides | 2 + debian/in.gcl.1 | 242 + debian/in.gcl.config | 21 + debian/in.gcl.docs | 1 + debian/in.gcl.install | 9 + debian/in.gcl.lintian-overrides | 10 + debian/in.gcl.manpages | 1 + debian/in.gcl.postinst | 42 + debian/in.gcl.postrm | 22 + debian/in.gcl.templates | 26 + debian/msb | 31 + debian/msbe | 8 + debian/old.in.gcl-doc.doc-base.main | 12 + debian/patches/Version_2_7_2ore3 | 1172 ++ debian/patches/Version_2_7_2pre1 | 21 + debian/patches/Version_2_7_2pre10 | 191 + debian/patches/Version_2_7_2pre11 | 85 + debian/patches/Version_2_7_2pre12 | 63 + debian/patches/Version_2_7_2pre13 | 1596 +++ debian/patches/Version_2_7_2pre14 | 83 + debian/patches/Version_2_7_2pre15 | 75 + debian/patches/Version_2_7_2pre16 | 613 + debian/patches/Version_2_7_2pre17 | 2362 ++++ debian/patches/Version_2_7_2pre18 | 4473 +++++++ debian/patches/Version_2_7_2pre19 | 660 + debian/patches/Version_2_7_2pre2 | 2242 ++++ debian/patches/Version_2_7_2pre20 | 4803 +++++++ debian/patches/Version_2_7_2pre21 | 42 + debian/patches/Version_2_7_2pre22 | 150 + debian/patches/Version_2_7_2pre23 | 47 + debian/patches/Version_2_7_2pre24 | 443 + debian/patches/Version_2_7_2pre25 | 7166 +++++++++++ debian/patches/Version_2_7_2pre26 | 50 + debian/patches/Version_2_7_2pre27 | 1100 ++ debian/patches/Version_2_7_2pre28 | 49 + debian/patches/Version_2_7_2pre30 | 1424 +++ debian/patches/Version_2_7_2pre31 | 70 + debian/patches/Version_2_7_2pre32 | 181 + debian/patches/Version_2_7_2pre33 | 625 + debian/patches/Version_2_7_2pre34 | 50 + debian/patches/Version_2_7_2pre35 | 598 + debian/patches/Version_2_7_2pre36 | 698 ++ debian/patches/Version_2_7_2pre5 | 157 + debian/patches/Version_2_7_2pre6 | 419 + debian/patches/Version_2_7_2pre7 | 156 + debian/patches/Version_2_7_2pre8 | 17403 ++++++++++++++++++++++++++ debian/patches/Version_2_7_2pre9 | 49 + debian/patches/series | 34 + debian/po/POTFILES.in | 1 + debian/po/ca.po | 77 + debian/po/cs.po | 149 + debian/po/da.po | 109 + debian/po/de.po | 126 + debian/po/es.po | 197 + debian/po/fi.po | 105 + debian/po/fr.po | 148 + debian/po/gl.po | 147 + debian/po/in.POTFILES.in | 1 + debian/po/it.po | 112 + debian/po/ja.po | 107 + debian/po/nl.po | 80 + debian/po/pt.po | 129 + debian/po/pt_BR.po | 109 + debian/po/ru.po | 111 + debian/po/sv.po | 78 + debian/po/templates.pot | 58 + debian/po/vi.po | 111 + debian/rules | 210 + debian/source/format | 1 + debian/source/include-binaries | 6 + debian/texi.awk | 27 + debian/upstream/signing-key.asc | 13 + debian/watch | 2 + info/gcl-si.info-2 | Bin 0 -> 13791 bytes 97 files changed, 57370 insertions(+) create mode 100644 debian/README.Debian create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/control_ create mode 100644 debian/control_27 create mode 100644 debian/control_cvs create mode 100644 debian/copyright create mode 100644 debian/debian-autoloads.el create mode 100644 debian/gcl-pkg.el.in create mode 100755 debian/gcl.sh create mode 100644 debian/gcl27.templates create mode 100644 debian/in.gcl-clc.sh create mode 100644 debian/in.gcl-doc.README.Debian create mode 100644 debian/in.gcl-doc.doc-base.main create mode 100644 debian/in.gcl-doc.doc-base.si create mode 100644 debian/in.gcl-doc.doc-base.xgcl create mode 100644 debian/in.gcl-doc.docs create mode 100644 debian/in.gcl-doc.info create mode 100644 debian/in.gcl-doc.install create mode 100644 debian/in.gcl-tk-doc.doc-base.tk create mode 100644 debian/in.gcl-tk-doc.info create mode 100644 debian/in.gcl-tk-doc.install create mode 100644 debian/in.gcl-tk.install create mode 100644 debian/in.gcl-tk.lintian-overrides create mode 100644 debian/in.gcl.1 create mode 100644 debian/in.gcl.config create mode 100644 debian/in.gcl.docs create mode 100644 debian/in.gcl.install create mode 100644 debian/in.gcl.lintian-overrides create mode 100644 debian/in.gcl.manpages create mode 100644 debian/in.gcl.postinst create mode 100644 debian/in.gcl.postrm create mode 100644 debian/in.gcl.templates create mode 100644 debian/msb create mode 100644 debian/msbe create mode 100644 debian/old.in.gcl-doc.doc-base.main create mode 100644 debian/patches/Version_2_7_2ore3 create mode 100644 debian/patches/Version_2_7_2pre1 create mode 100644 debian/patches/Version_2_7_2pre10 create mode 100644 debian/patches/Version_2_7_2pre11 create mode 100644 debian/patches/Version_2_7_2pre12 create mode 100644 debian/patches/Version_2_7_2pre13 create mode 100644 debian/patches/Version_2_7_2pre14 create mode 100644 debian/patches/Version_2_7_2pre15 create mode 100644 debian/patches/Version_2_7_2pre16 create mode 100644 debian/patches/Version_2_7_2pre17 create mode 100644 debian/patches/Version_2_7_2pre18 create mode 100644 debian/patches/Version_2_7_2pre19 create mode 100644 debian/patches/Version_2_7_2pre2 create mode 100644 debian/patches/Version_2_7_2pre20 create mode 100644 debian/patches/Version_2_7_2pre21 create mode 100644 debian/patches/Version_2_7_2pre22 create mode 100644 debian/patches/Version_2_7_2pre23 create mode 100644 debian/patches/Version_2_7_2pre24 create mode 100644 debian/patches/Version_2_7_2pre25 create mode 100644 debian/patches/Version_2_7_2pre26 create mode 100644 debian/patches/Version_2_7_2pre27 create mode 100644 debian/patches/Version_2_7_2pre28 create mode 100644 debian/patches/Version_2_7_2pre30 create mode 100644 debian/patches/Version_2_7_2pre31 create mode 100644 debian/patches/Version_2_7_2pre32 create mode 100644 debian/patches/Version_2_7_2pre33 create mode 100644 debian/patches/Version_2_7_2pre34 create mode 100644 debian/patches/Version_2_7_2pre35 create mode 100644 debian/patches/Version_2_7_2pre36 create mode 100644 debian/patches/Version_2_7_2pre5 create mode 100644 debian/patches/Version_2_7_2pre6 create mode 100644 debian/patches/Version_2_7_2pre7 create mode 100644 debian/patches/Version_2_7_2pre8 create mode 100644 debian/patches/Version_2_7_2pre9 create mode 100644 debian/patches/series create mode 100644 debian/po/POTFILES.in create mode 100644 debian/po/ca.po create mode 100644 debian/po/cs.po create mode 100644 debian/po/da.po create mode 100644 debian/po/de.po create mode 100644 debian/po/es.po create mode 100644 debian/po/fi.po create mode 100644 debian/po/fr.po create mode 100644 debian/po/gl.po create mode 100644 debian/po/in.POTFILES.in create mode 100644 debian/po/it.po create mode 100644 debian/po/ja.po create mode 100644 debian/po/nl.po create mode 100644 debian/po/pt.po create mode 100644 debian/po/pt_BR.po create mode 100644 debian/po/ru.po create mode 100644 debian/po/sv.po create mode 100644 debian/po/templates.pot create mode 100644 debian/po/vi.po create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 debian/source/include-binaries create mode 100755 debian/texi.awk create mode 100644 debian/upstream/signing-key.asc create mode 100644 debian/watch create mode 100644 info/gcl-si.info-2 diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 00000000..81749750 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,28 @@ +The Debian package gcl +---------------------- + +GCL is one of the oldest free common lisp systems still in use. Several +production systems have used it for over a decade. The common lisp +standard in effect when GCL was first released is known as "Common Lisp, +the Language" (CLtL1) after a book by Steele of the same name providing +this specification. Subsequently, a much expanded standard was adopted by +the American National Standards Institute (ANSI), which is still +considered the definitive common lisp language specification to this day. + +Debian GCL now installs both the small 'traditional' lisp image +designed to conform to a pre-ANSI Lisp standard, and an experimental +ANSI image. Please note that ANSI support in GCL is still +preliminary. On an ansi-test suite written by a GCL developer, GCL +fails on a little under 3 percent of the tests. Details can be found +in /usr/share/doc/gcl/test_results.gz. + +To toggle the use of the ANSI image, set the environment variable +GCL_ANSI to any non-empty string. + +New in 2.6.2 +------------ + +Please see the RELEASE-2.6.2.html file for release note information, +regression testing, and sample benchmarks. + + -- Camm Maguire , Wed Dec 14 18:55:19 2005 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..f22e1e8c --- /dev/null +++ b/debian/changelog @@ -0,0 +1,4712 @@ +gcl27 (2.7.1-33) unstable; urgency=medium + + * Version_2_7_2pre36 + + -- Camm Maguire Thu, 16 Jul 2026 12:43:44 -0400 + +gcl27 (2.7.1-32) unstable; urgency=medium + + * Version_2_7_2pre35 + * Bug fix: "FTBFS: ERROR: See make.log.", thanks to Santiago Vila + (Closes: #1140970). + + -- Camm Maguire Sun, 05 Jul 2026 14:49:40 -0400 + +gcl27 (2.7.1-31) unstable; urgency=medium + + * Version_2_7_2pre34 + + -- Camm Maguire Sat, 27 Jun 2026 13:32:41 -0400 + +gcl27 (2.7.1-30) unstable; urgency=medium + + * Version_2_7_2pre33 + + -- Camm Maguire Sat, 27 Jun 2026 08:08:41 -0400 + +gcl27 (2.7.1-29) unstable; urgency=medium + + * Version_2_7_2pre32 + + -- Camm Maguire Wed, 24 Jun 2026 13:31:07 -0400 + +gcl27 (2.7.1-28) unstable; urgency=medium + + * Version_2_7_2pre31 + + -- Camm Maguire Tue, 23 Jun 2026 18:35:51 -0400 + +gcl27 (2.7.1-27) unstable; urgency=medium + + * Version_2_7_2pre30 + + -- Camm Maguire Tue, 23 Jun 2026 14:54:29 -0400 + +gcl27 (2.7.1-26) unstable; urgency=medium + + * Version_2_7_2pre28 + + -- Camm Maguire Mon, 15 Jun 2026 21:26:01 -0400 + +gcl27 (2.7.1-25) unstable; urgency=medium + + * Version_2_7_2pre27 + + -- Camm Maguire Mon, 15 Jun 2026 16:32:01 -0400 + +gcl27 (2.7.1-24) unstable; urgency=medium + + * Version_2_7_2pre26 + + -- Camm Maguire Wed, 27 May 2026 13:56:49 -0400 + +gcl27 (2.7.1-23) unstable; urgency=medium + + * Version_2_7_2pre25 + + -- Camm Maguire Wed, 27 May 2026 11:42:57 -0400 + +gcl27 (2.7.1-22) unstable; urgency=medium + + * Version_2_7_2pre24 + + -- Camm Maguire Fri, 22 May 2026 11:28:34 -0400 + +gcl27 (2.7.1-21) unstable; urgency=high + + * Version_2_7_2pre23 + * Bug fix: "FTBFS on loong64: Killed after 3 days of "Tick"", + thanks to Sebastian Ramacher (Closes: #1135720). + + -- Camm Maguire Sat, 16 May 2026 08:55:17 -0400 + +gcl27 (2.7.1-20) unstable; urgency=medium + + * Version_2_7_2pre20 + + -- Camm Maguire Thu, 14 May 2026 07:46:39 -0400 + +gcl27 (2.7.1-19) unstable; urgency=medium + + * Version_2_7_2pre20 + * Bug fix: "FTBFS with make --shuffle=reverse: make[1]: *** + [Makefile:1044: all] Error 2 shuffle=reverse", thanks to Lucas + Nussbaum (Closes: #1105309). + + -- Camm Maguire Wed, 13 May 2026 08:09:13 -0400 + +gcl27 (2.7.1-18) unstable; urgency=medium + + * Version_2_7_2pre17 + + -- Camm Maguire Thu, 23 Apr 2026 08:50:18 -0400 + +gcl27 (2.7.1-17) unstable; urgency=medium + + * Version_2_7_2pre16 + + -- Camm Maguire Tue, 21 Apr 2026 08:06:06 -0400 + +gcl27 (2.7.1-16) unstable; urgency=medium + + * Version_2_7_2pre15 + + -- Camm Maguire Mon, 13 Apr 2026 13:20:04 -0400 + +gcl27 (2.7.1-15) unstable; urgency=medium + + * Version_2_7_2pre14 + + -- Camm Maguire Thu, 19 Mar 2026 17:11:00 -0400 + +gcl27 (2.7.1-14) unstable; urgency=medium + + * Version_2_7_2pre13 + + -- Camm Maguire Sat, 14 Mar 2026 09:00:11 -0400 + +gcl27 (2.7.1-13) unstable; urgency=medium + + * Version_2_7_2pre12 + + -- Camm Maguire Wed, 04 Mar 2026 07:04:09 -0500 + +gcl27 (2.7.1-12) unstable; urgency=medium + + * Version_2_7_2pre11 + * Bug fix: "FTBFS with glibc 2.43 due to ISO C23 const return types", + thanks to Aurelien Jarno (Closes: #1128546). + * Bug fix: "Update/add debconf template translation [INTL:ca]", thanks + to Carles Pina i Estany (Closes: #1118704). + * Bug fix: "[INTL:sv] Swedish strings for gcl27 debconf", thanks to + Martin Bagge / brother (Closes: #1122744). + * Bug fix: "[INTL:es] Spanish translation of gcl27 debconf template", + thanks to Camaleón (Closes: #1108096). + * Bug fix: "FTBFS: SIMPLE-ERROR: SAVE-EXEC is unable to save to file + "saved_acl2.c", because its directory does not exist.", + thanks to Santiago Vila (Closes: #1128663). + + -- Camm Maguire Wed, 25 Feb 2026 08:23:26 -0500 + +gcl27 (2.7.1-11) unstable; urgency=medium + + * Version_2_7_2pre10 + + -- Camm Maguire Sun, 22 Feb 2026 11:52:14 -0500 + +gcl27 (2.7.1-10) unstable; urgency=medium + + * Version_2_7_2pre9 + + -- Camm Maguire Thu, 19 Feb 2026 17:21:25 -0500 + +gcl27 (2.7.1-9) unstable; urgency=medium + + * Version_2_7_2pre8 + + -- Camm Maguire Thu, 19 Feb 2026 16:06:23 -0500 + +gcl27 (2.7.1-8) unstable; urgency=medium + + * Bug fix: "FTBFS: /tmp/gazonk_6005_0.c:21:63: error: implicit + declaration of function '__builtin_c23_va_start'; did you mean + '__builtin_ms_va_start'? [-Wimplicit-function-declaration]", + thanks to Santiago Vila (Closes: #1114119). + * Version_2_7_2pre7 + + -- Camm Maguire Sun, 21 Sep 2025 14:06:45 -0400 + +gcl27 (2.7.1-7) unstable; urgency=medium + + * Version_2_7_2pre6 + * Bug fix: "[INTL:nl] Dutch debconf templates translation", thanks to Frans Spiesschaert (Closes: #1106482). + + -- Camm Maguire Thu, 29 May 2025 19:11:18 -0400 + +gcl27 (2.7.1-6) unstable; urgency=medium + + * Version_2_7_2pre5 + + -- Camm Maguire Wed, 14 May 2025 02:58:40 -0400 + +gcl27 (2.7.1-5) unstable; urgency=medium + + * Version_2_7_2pre4 + * Bug fix: "[INTL:pt] Portuguese translation - debconf messages", thanks + to Américo Monteiro (Closes: #1104887). + * Bug fix: "[INTL:de] updated German debconf translation", thanks to + Helge Kreutzmann (Closes: #1104918). + + -- Camm Maguire Sat, 10 May 2025 19:27:15 -0400 + +gcl27 (2.7.1-4) unstable; urgency=medium + + * Version_2_7_2ore3 + + -- Camm Maguire Sat, 03 May 2025 09:21:20 -0400 + +gcl27 (2.7.1-3) unstable; urgency=medium + + * Version_2_7_2ore2 + + -- Camm Maguire Tue, 22 Apr 2025 20:39:18 -0400 + +gcl27 (2.7.1-2) unstable; urgency=medium + + * Version_2_7_2ore1 + + -- Camm Maguire Fri, 11 Apr 2025 20:30:34 -0400 + +gcl27 (2.7.1-1) unstable; urgency=medium + + * New upstream release + + -- Camm Maguire Thu, 10 Apr 2025 21:39:17 -0400 + +gcl27 (2.7.0-36) unstable; urgency=medium + + * Version_2_7_0pre39 + + -- Camm Maguire Mon, 24 Mar 2025 16:30:46 -0400 + +gcl27 (2.7.0-35) unstable; urgency=medium + + * Version_2_7_0pre38 + * Bug fix: "ftbfs with GCC-15", thanks to Matthias Klose (Closes: + #1096686). + + -- Camm Maguire Thu, 06 Mar 2025 10:54:11 -0500 + +gcl27 (2.7.0-34) unstable; urgency=medium + + * Version_2_7_0pre37 + * Bug fix: "outdated debconf version constraint; inhibits support for + debconf-2.0/cdebconf", thanks to Gioele Barabucci (Closes: #1096166). + + -- Camm Maguire Tue, 18 Feb 2025 12:50:30 -0500 + +gcl27 (2.7.0-33) unstable; urgency=medium + + * Version_2_7_0pre36 + + -- Camm Maguire Sat, 08 Feb 2025 15:29:48 -0500 + +gcl27 (2.7.0-32) unstable; urgency=medium + + * Version_2_7_0pre35 + + -- Camm Maguire Sun, 02 Feb 2025 12:00:42 -0500 + +gcl27 (2.7.0-31) unstable; urgency=medium + + * Version_2_7_0pre34 + + -- Camm Maguire Fri, 17 Jan 2025 18:42:15 -0500 + +gcl27 (2.7.0-30) unstable; urgency=medium + + * Version_2_7_0pre33 + + -- Camm Maguire Fri, 27 Dec 2024 13:21:13 -0500 + +gcl27 (2.7.0-29) unstable; urgency=medium + + * Version_2_7_0pre32 + + -- Camm Maguire Mon, 09 Dec 2024 10:00:39 -0500 + +gcl27 (2.7.0-28) unstable; urgency=medium + + * Version_2_7_0pre31 + + -- Camm Maguire Wed, 04 Dec 2024 13:25:14 -0500 + +gcl27 (2.7.0-27) unstable; urgency=medium + + * Version_2_7_0pre30 + + -- Camm Maguire Wed, 04 Dec 2024 07:48:31 -0500 + +gcl27 (2.7.0-26) unstable; urgency=medium + + * Version_2_7_0pre29 + + -- Camm Maguire Sat, 23 Nov 2024 11:33:30 -0500 + +gcl27 (2.7.0-25) unstable; urgency=medium + + * Bug fix: "needs rebuild against dh-elpa >=2.1.5", thanks to + spwhitton@spwhitton.name; (Closes: #1077103). + + -- Camm Maguire Sun, 28 Jul 2024 12:07:24 -0400 + +gcl27 (2.7.0-24) unstable; urgency=medium + + * Version_2_7_0pre27 + + -- Camm Maguire Fri, 19 Jul 2024 15:04:27 -0400 + +gcl27 (2.7.0-23) unstable; urgency=medium + + * Version_2_7_0pre26 + + -- Camm Maguire Sun, 28 Apr 2024 22:13:09 -0400 + +gcl27 (2.7.0-22) unstable; urgency=medium + + * Version_2_7_0pre25 + + -- Camm Maguire Sun, 28 Apr 2024 07:55:48 -0400 + +gcl27 (2.7.0-21) unstable; urgency=high + + * Version_2_7_0pre24 + * Bug fix: "recent libc6-dev change causes XDR support to be dropped", + thanks to Aurelien Jarno (Closes: #1065207). + + -- Camm Maguire Fri, 15 Mar 2024 20:00:19 -0400 + +gcl27 (2.7.0-20) unstable; urgency=medium + + * Version_2_7_0pre23 + + -- Camm Maguire Thu, 29 Feb 2024 06:51:25 -0500 + +gcl27 (2.7.0-19) unstable; urgency=medium + + * Version_2_7_0pre22 + + -- Camm Maguire Wed, 28 Feb 2024 13:35:45 -0500 + +gcl27 (2.7.0-18) unstable; urgency=medium + + * Version_2_7_0pre21 + + -- Camm Maguire Sat, 24 Feb 2024 08:40:29 -0500 + +gcl27 (2.7.0-17) unstable; urgency=medium + + * Version_2_7_0pre20 + + -- Camm Maguire Fri, 23 Feb 2024 12:23:51 -0500 + +gcl27 (2.7.0-16) unstable; urgency=medium + + * Version_2_7_0pre19 + + -- Camm Maguire Thu, 22 Feb 2024 22:03:20 -0500 + +gcl27 (2.7.0-15) unstable; urgency=medium + + * Version_2_7_0pre18 + + -- Camm Maguire Thu, 22 Feb 2024 15:00:44 -0500 + +gcl27 (2.7.0-14) unstable; urgency=medium + + * Version_2_7_0pre17 + + -- Camm Maguire Wed, 21 Feb 2024 08:03:46 -0500 + +gcl27 (2.7.0-13) unstable; urgency=medium + + * Version_2_7_0pre16 + + -- Camm Maguire Wed, 21 Feb 2024 00:17:54 -0500 + +gcl27 (2.7.0-12) unstable; urgency=medium + + * Version_2_7_0pre15 + + -- Camm Maguire Mon, 19 Feb 2024 19:08:05 -0500 + +gcl27 (2.7.0-11) unstable; urgency=medium + + * Version_2_7_0pre14 + + -- Camm Maguire Mon, 19 Feb 2024 11:04:51 -0500 + +gcl27 (2.7.0-10) unstable; urgency=medium + + * Version_2_7_0pre13 + + -- Camm Maguire Sun, 28 Jan 2024 20:17:32 -0500 + +gcl27 (2.7.0-9) unstable; urgency=medium + + * Version_2_7_0pre12 + + -- Camm Maguire Sun, 28 Jan 2024 18:09:15 -0500 + +gcl27 (2.7.0-8) unstable; urgency=medium + + * Version_2_7_0pre11 + + -- Camm Maguire Sun, 28 Jan 2024 10:36:24 -0500 + +gcl27 (2.7.0-7) unstable; urgency=medium + + * Version_2_7_0pre10 + + -- Camm Maguire Sat, 27 Jan 2024 12:35:03 -0500 + +gcl27 (2.7.0-6) unstable; urgency=medium + + * Version_2_7_0pre9 + + -- Camm Maguire Thu, 21 Dec 2023 15:02:31 -0500 + +gcl27 (2.7.0-5) unstable; urgency=medium + + * Version_2_7_0pre8 + + -- Camm Maguire Thu, 21 Dec 2023 13:08:00 -0500 + +gcl27 (2.7.0-4) unstable; urgency=medium + + * Version_2_7_0pre7 + + -- Camm Maguire Thu, 21 Dec 2023 09:37:49 -0500 + +gcl27 (2.7.0-3) unstable; urgency=medium + + * Version_2_7_0pre5 + + -- Camm Maguire Wed, 20 Dec 2023 19:43:39 -0500 + +gcl27 (2.7.0-2) unstable; urgency=medium + + * Version_2_7_0pre4 + + -- Camm Maguire Wed, 20 Dec 2023 16:01:04 -0500 + +gcl27 (2.7.0-1) unstable; urgency=medium + + * Version_2_7_0pre3 + + -- Camm Maguire Thu, 14 Dec 2023 16:20:45 -0500 + +gcl (2.6.13-5) unstable; urgency=medium + + * Version_2_6_14pre4 + + -- Camm Maguire Sun, 25 Dec 2022 07:14:33 -0500 + +gcl (2.6.13-4) unstable; urgency=medium + + * Version_2_6_14pre3 + + -- Camm Maguire Fri, 23 Dec 2022 11:34:35 -0500 + +gcl (2.6.13-3) unstable; urgency=medium + + * Version_2_6_14pre2 + + -- Camm Maguire Thu, 22 Dec 2022 19:09:24 -0500 + +gcl (2.6.13-2) unstable; urgency=medium + + * Version_2_6_14pre1 + + -- Camm Maguire Wed, 21 Dec 2022 14:40:21 -0500 + +gcl (2.6.13-1) unstable; urgency=medium + + * New Upstream Release + + -- Camm Maguire Tue, 20 Dec 2022 10:35:44 -0500 + +gcl (2.6.12-131) unstable; urgency=medium + + * Version_2.6.13pre131 + + -- Camm Maguire Sat, 17 Dec 2022 12:15:58 -0500 + +gcl (2.6.12-130) unstable; urgency=medium + + * Version_2.6.13pre130 + + -- Camm Maguire Fri, 16 Dec 2022 12:41:29 -0500 + +gcl (2.6.12-129) unstable; urgency=medium + + * Version_2.6.13pre129 + + -- Camm Maguire Sun, 13 Nov 2022 07:55:14 -0500 + +gcl (2.6.12-128) unstable; urgency=medium + + * Version_2.6.13pre128 + + -- Camm Maguire Sat, 12 Nov 2022 11:02:31 -0500 + +gcl (2.6.12-126) unstable; urgency=medium + + * Version_2.6.13pre126 + + -- Camm Maguire Tue, 08 Nov 2022 19:43:41 -0500 + +gcl (2.6.12-125) unstable; urgency=medium + + * Version_2.6.13pre125 + + -- Camm Maguire Tue, 08 Nov 2022 15:33:25 -0500 + +gcl (2.6.12-124) unstable; urgency=medium + + * Version_2.6.13pre124 + + -- Camm Maguire Thu, 11 Aug 2022 13:16:42 -0400 + +gcl (2.6.12-123) unstable; urgency=medium + + * Version_2.6.13pre123 + + -- Camm Maguire Mon, 08 Aug 2022 13:00:55 -0400 + +gcl (2.6.12-122) unstable; urgency=medium + + * Version_2.6.13pre122 + + -- Camm Maguire Mon, 08 Aug 2022 11:50:22 -0400 + +gcl (2.6.12-121) unstable; urgency=medium + + * Version_2.6.13pre121 + + -- Camm Maguire Mon, 08 Aug 2022 11:45:30 -0400 + +gcl (2.6.12-120) unstable; urgency=medium + + * Version_2.6.13pre120 + + -- Camm Maguire Sun, 07 Aug 2022 12:26:10 -0400 + +gcl (2.6.12-119) unstable; urgency=medium + + * Version_2.6.13pre119 + + -- Camm Maguire Sun, 31 Jul 2022 12:00:02 -0400 + +gcl (2.6.12-118) unstable; urgency=medium + + * Bug fix: "emacs dependency should be "emacs | emacsen"", + thanks to Adrian Bunk (Closes: #1006617). + * Bug fix: "Please remove dependency on install-info", thanks to + hille42@web.de; (Closes: #1013691). + * Version_2.6.13pre118 + + -- Camm Maguire Tue, 12 Jul 2022 17:17:09 -0400 + +gcl (2.6.12-117) unstable; urgency=medium + + * Version_2.6.13pre114 + + -- Camm Maguire Sat, 25 Dec 2021 11:38:16 -0500 + +gcl (2.6.12-116) unstable; urgency=medium + + * Version_2.6.13pre113 + + -- Camm Maguire Wed, 22 Dec 2021 19:52:18 +0000 + +gcl (2.6.12-115) unstable; urgency=medium + + * Version_2.6.13pre112 + + -- Camm Maguire Fri, 17 Dec 2021 16:08:45 +0000 + +gcl (2.6.12-114) unstable; urgency=medium + + * Version_2.6.13pre111 + + -- Camm Maguire Thu, 16 Dec 2021 11:35:04 +0000 + +gcl (2.6.12-113) unstable; urgency=medium + + * Version_2.6.13pre110 + + -- Camm Maguire Thu, 16 Dec 2021 11:35:04 +0000 + +gcl (2.6.12-112) unstable; urgency=medium + + * Version_2.6.13pre109 + + -- Camm Maguire Wed, 15 Dec 2021 19:39:42 +0000 + +gcl (2.6.12-111) unstable; urgency=medium + + * Version_2.6.13pre108 + + -- Camm Maguire Thu, 11 Nov 2021 17:10:43 +0000 + +gcl (2.6.12-110) unstable; urgency=medium + + * Version_2.6.13pre107 + + -- Camm Maguire Thu, 11 Nov 2021 01:34:07 +0000 + +gcl (2.6.12-109) unstable; urgency=medium + + * Version_2.6.13pre106 + + -- Camm Maguire Wed, 10 Nov 2021 18:57:21 +0000 + +gcl (2.6.12-108) unstable; urgency=medium + + * Version_2.6.13pre105 + + -- Camm Maguire Tue, 09 Nov 2021 18:22:58 +0000 + +gcl (2.6.12-107) unstable; urgency=medium + + * Version_2.6.13pre103 + + -- Camm Maguire Tue, 09 Nov 2021 10:10:19 +0000 + +gcl (2.6.12-106) unstable; urgency=medium + + * Version_2.6.13pre102 + + -- Camm Maguire Thu, 04 Nov 2021 14:33:53 +0000 + +gcl (2.6.12-105) unstable; urgency=medium + + * Version_2.6.13pre101 + * Bug fix: "fails to start with glibc 2.33", thanks to Andreas Kloeckner + (Closes: #995323). + + -- Camm Maguire Sun, 10 Oct 2021 13:18:39 +0000 + +gcl (2.6.12-104) unstable; urgency=medium + + * Version_2.6.13pre100 + * standardize cstack start address on 32bit arm + + -- Camm Maguire Sun, 10 Oct 2021 12:44:51 +0000 + +gcl (2.6.12-103) unstable; urgency=medium + + * Bug fix: "Fails to install in unstable", thanks to Samuel Thibault + (Closes: #993480). + + -- Camm Maguire Sat, 04 Sep 2021 19:23:26 +0000 + +gcl (2.6.12-102) unstable; urgency=medium + + * Version_2.6.13pre99 + * Bug fix: "describe fails because gcl-si.info does not exist", thanks + to Leo Butler (Closes: #980003). + + -- Camm Maguire Fri, 29 Jan 2021 19:08:05 +0000 + +gcl (2.6.12-101) unstable; urgency=medium + + * Version_2.6.13pre98 + + -- Camm Maguire Sun, 17 Jan 2021 16:25:34 +0000 + +gcl (2.6.12-100) unstable; urgency=medium + + * Version_2.6.13pre97 + + -- Camm Maguire Fri, 04 Dec 2020 14:51:41 +0000 + +gcl (2.6.12-99) unstable; urgency=medium + + * Version_2.6.13pre95 + + -- Camm Maguire Sat, 28 Nov 2020 15:50:42 +0000 + +gcl (2.6.12-98) unstable; urgency=medium + + * Version_2.6.13pre94 + + -- Camm Maguire Tue, 29 Sep 2020 18:29:10 +0000 + +gcl (2.6.12-97) unstable; urgency=medium + + * Bug fix: "Removal of obsolete debhelper compat 5 and 6 in bookworm", + thanks to Niels Thykier (Closes: #965543). + * Version_2.6.13pre93 + + -- Camm Maguire Sat, 29 Aug 2020 16:23:07 +0000 + +gcl (2.6.12-96) unstable; urgency=high + + * Version_2.6.13pre92: Work around armhf strip bug producing undefined + instruction in .plt + + -- Camm Maguire Sun, 23 Aug 2020 17:53:14 +0000 + +gcl (2.6.12-95) unstable; urgency=high + + * Version_2_6_13pre90 + * build under GCL_MEM_MULTIPLE=0.1 + * Bug fix: "FTBFS: Unrecoverable error: Segmentation violation..", + thanks to Lucas Nussbaum (Closes: #952334). + + -- Camm Maguire Fri, 01 May 2020 12:55:02 +0000 + +gcl (2.6.12-94) unstable; urgency=medium + + * re-release to overcome hopefully transient buildd failure + + -- Camm Maguire Mon, 24 Feb 2020 20:02:52 +0000 + +gcl (2.6.12-93) unstable; urgency=medium + + * Version_2_6_13pre90 + + -- Camm Maguire Fri, 21 Feb 2020 19:06:56 +0000 + +gcl (2.6.12-92) unstable; urgency=medium + + * Version_2_6_13pre89 + + -- Camm Maguire Mon, 30 Dec 2019 15:46:22 +0000 + +gcl (2.6.12-91) unstable; urgency=medium + + * Version_2_6_13pre88 + + -- Camm Maguire Wed, 18 Dec 2019 20:14:09 +0000 + +gcl (2.6.12-90) unstable; urgency=medium + + * Version_2_6_13pre87 + * latest standards + + -- Camm Maguire Sun, 08 Dec 2019 19:27:24 +0000 + +gcl (2.6.12-89) unstable; urgency=medium + + * Bug fix: "gcl - FTBFS on ppc64el - invalid relocation type 31", thanks + to thierry.fauck@fr.ibm.com; (Closes: #942312). + * Bug fix: "FTBFS on ppc64el", thanks to Ivo De Decker (Closes: + #944651). + + -- Camm Maguire Sat, 07 Dec 2019 23:27:53 +0000 + +gcl (2.6.12-88) unstable; urgency=medium + + * Source only upload + + -- Camm Maguire Fri, 11 Oct 2019 19:18:44 +0000 + +gcl (2.6.12-87) unstable; urgency=medium + + * Version_2_6_13pre84 + + -- Camm Maguire Sat, 06 Apr 2019 13:03:21 +0000 + +gcl (2.6.12-86) unstable; urgency=medium + + * Version_2_6_13pre83 + + -- Camm Maguire Tue, 02 Apr 2019 19:57:15 +0000 + +gcl (2.6.12-85) unstable; urgency=medium + + * Version_2_6_13pre82 + + -- Camm Maguire Thu, 28 Mar 2019 18:48:55 +0000 + +gcl (2.6.12-84) unstable; urgency=medium + + * Version_2_6_13pre80 + + -- Camm Maguire Thu, 21 Mar 2019 18:59:40 +0000 + +gcl (2.6.12-83) unstable; urgency=high + + * Version_2_6_13pre79 + * Fix acl2 arm builds (Closes: #919477). + + -- Camm Maguire Tue, 05 Feb 2019 21:54:42 +0000 + +gcl (2.6.12-82) unstable; urgency=high + + * Version_2_6_13pre74 + + -- Camm Maguire Sat, 02 Feb 2019 17:40:20 +0000 + +gcl (2.6.12-81) unstable; urgency=high + + * Version_2_6_13pre72 + * Fix to ppc64el for acl2 FTBFS bug + + -- Camm Maguire Mon, 21 Jan 2019 16:40:36 +0000 + +gcl (2.6.12-80) unstable; urgency=medium + + * Version_2_6_13pre71 + * Bug fix: "FTBFS on hppa - segmentation fault assembling gbc.s", thanks + to John David Anglin (Closes: #912071). + + -- Camm Maguire Tue, 30 Oct 2018 17:20:43 +0000 + +gcl (2.6.12-79) unstable; urgency=medium + + * Version_2_6_13pre70 + + -- Camm Maguire Mon, 29 Oct 2018 16:52:17 +0000 + +gcl (2.6.12-78) unstable; urgency=medium + + * rebuild against latest compilers and tools + * Version_2_6_13pre69 + + -- Camm Maguire Thu, 11 Oct 2018 16:40:48 +0000 + +gcl (2.6.12-77) unstable; urgency=medium + + * Version_2_6_13pre68 + * Bug fix: "GCL fails to load .o files it generates", thanks to Gong-Yi + Liao (Closes: #902475). Add support for R_X86_64_PLT32 relocs. + + -- Camm Maguire Tue, 24 Jul 2018 20:06:45 +0000 + +gcl (2.6.12-76) unstable; urgency=medium + + * Version_2_6_13pre67 + + -- Camm Maguire Fri, 23 Mar 2018 19:25:22 +0000 + +gcl (2.6.12-75) unstable; urgency=medium + + * Version_2_6_13pre65 + + -- Camm Maguire Wed, 21 Mar 2018 20:28:08 +0000 + +gcl (2.6.12-74) unstable; urgency=medium + + * Version_2_6_13pre63 + + -- Camm Maguire Sat, 17 Mar 2018 11:56:05 +0000 + +gcl (2.6.12-73) unstable; urgency=medium + + * Version_2_6_13pre62 + + -- Camm Maguire Wed, 14 Mar 2018 15:38:43 +0000 + +gcl (2.6.12-72) unstable; urgency=medium + + * Version_2_6_13pre61 + + -- Camm Maguire Tue, 13 Mar 2018 15:32:44 +0000 + +gcl (2.6.12-71) unstable; urgency=medium + + * Version_2_6_13pre60 + + -- Camm Maguire Mon, 12 Mar 2018 19:44:47 +0000 + +gcl (2.6.12-70) unstable; urgency=medium + + * Version_2_6_13pre59 + + -- Camm Maguire Mon, 12 Mar 2018 16:19:00 +0000 + +gcl (2.6.12-69) unstable; urgency=medium + + * Version_2_6_13pre58 + + -- Camm Maguire Fri, 09 Mar 2018 17:10:51 +0000 + +gcl (2.6.12-68) unstable; urgency=medium + + * Version_2_6_13pre57 + + -- Camm Maguire Sun, 04 Mar 2018 13:21:00 +0000 + +gcl (2.6.12-67) unstable; urgency=medium + + * Version_2_6_13pre55 + + -- Camm Maguire Sat, 03 Mar 2018 14:27:51 +0000 + +gcl (2.6.12-66) unstable; urgency=medium + + * Version_2_6_13pre54 + + -- Camm Maguire Fri, 02 Mar 2018 21:19:03 +0000 + +gcl (2.6.12-65) unstable; urgency=medium + + * Version_2_6_13pre52 + * Bug fix: "FTBFS on hurd-i386", thanks to svante.signell@gmail.com; + (Closes: #802593). + + -- Camm Maguire Fri, 23 Feb 2018 15:55:23 +0000 + +gcl (2.6.12-64) unstable; urgency=medium + + * list_order.24 + + -- Camm Maguire Sun, 04 Feb 2018 13:26:27 +0000 + +gcl (2.6.12-63) unstable; urgency=medium + + * list_order.23 + + -- Camm Maguire Thu, 01 Feb 2018 18:36:29 +0000 + +gcl (2.6.12-62) unstable; urgency=medium + + * list_order.22 + + -- Camm Maguire Thu, 01 Feb 2018 01:05:10 +0000 + +gcl (2.6.12-61) unstable; urgency=medium + + * list_order.21 + + -- Camm Maguire Tue, 30 Jan 2018 21:13:13 +0000 + +gcl (2.6.12-60) unstable; urgency=medium + + * list_order.19 + + -- Camm Maguire Tue, 23 Jan 2018 18:11:59 +0000 + +gcl (2.6.12-59) unstable; urgency=medium + + * list_order.16 + + -- Camm Maguire Fri, 12 Jan 2018 03:25:08 +0000 + +gcl (2.6.12-58) unstable; urgency=medium + + * list_order.14 + + -- Camm Maguire Mon, 18 Sep 2017 15:45:10 +0000 + +gcl (2.6.12-57) unstable; urgency=medium + + * list_order.13 + + -- Camm Maguire Fri, 25 Aug 2017 13:44:10 +0000 + +gcl (2.6.12-56) unstable; urgency=medium + + * list_order.12 + + -- Camm Maguire Thu, 24 Aug 2017 19:12:50 +0000 + +gcl (2.6.12-55) unstable; urgency=medium + + * disable gprof on aarch64 + * Bug fix: "gcl FTBFS on arm64: Unrecoverable error: Segmentation + violation..", thanks to Adrian Bunk (Closes: #873052). + + -- Camm Maguire Thu, 24 Aug 2017 16:37:07 +0000 + +gcl (2.6.12-54) unstable; urgency=medium + + * list_order.11 + + -- Camm Maguire Wed, 23 Aug 2017 22:19:14 +0000 + +gcl (2.6.12-53) unstable; urgency=medium + + * list_order.9 + + -- Camm Maguire Sun, 18 Jun 2017 18:32:30 +0000 + +gcl (2.6.12-52) unstable; urgency=medium + + * list_order.8 + + -- Camm Maguire Thu, 15 Jun 2017 18:04:41 +0000 + +gcl (2.6.12-51) unstable; urgency=medium + + * list_order.7 + + -- Camm Maguire Wed, 14 Jun 2017 18:30:46 +0000 + +gcl (2.6.12-50) unstable; urgency=medium + + * list_order.6 + + -- Camm Maguire Tue, 13 Jun 2017 22:38:52 +0000 + +gcl (2.6.12-49) unstable; urgency=medium + + * list_order.5 + + -- Camm Maguire Thu, 08 Jun 2017 17:21:01 +0000 + +gcl (2.6.12-48) unstable; urgency=medium + + * list_order.1 + + -- Camm Maguire Sun, 28 May 2017 01:42:29 +0000 + +gcl (2.6.12-47) unstable; urgency=high + + * pathnames1.13 + + -- Camm Maguire Tue, 22 Nov 2016 04:53:35 +0000 + +gcl (2.6.12-46) unstable; urgency=high + + * pathnames1.12 + * Bug fix: "maintainer script(s) do not start on #!", thanks to + treinen@debian.org; (Closes: #843303). + + -- Camm Maguire Fri, 18 Nov 2016 18:27:53 +0000 + +gcl (2.6.12-45) unstable; urgency=high + + * pathnames1.11 + + -- Camm Maguire Mon, 31 Oct 2016 22:57:27 +0000 + +gcl (2.6.12-44) unstable; urgency=high + + * pathnames1.9 + + -- Camm Maguire Fri, 28 Oct 2016 17:04:38 +0000 + +gcl (2.6.12-43) unstable; urgency=medium + + * pathnames1.7 + + -- Camm Maguire Thu, 27 Oct 2016 03:46:32 +0000 + +gcl (2.6.12-42) unstable; urgency=medium + + * pathnames1.6 + * Bug fix: "FTBFS with bindnow and PIE enabled", thanks to Balint Reczey + (Closes: #837481). + * Bug fix: "FTBFS with compilers that default to -fPIE (patch + attached)", thanks to Adam Conrad (Closes: #822820). + + -- Camm Maguire Wed, 26 Oct 2016 23:04:57 +0000 + +gcl (2.6.12-41) unstable; urgency=medium + + * pathnames1.4, kfreebsd fix + + -- Camm Maguire Fri, 14 Oct 2016 01:17:18 +0000 + +gcl (2.6.12-40) unstable; urgency=medium + + * pathnames1.2 + * Bug fix: "popen arguments not quoted causes trouble and security + issues", thanks to axel (Closes: #802203). + + -- Camm Maguire Wed, 12 Oct 2016 18:09:26 +0000 + +gcl (2.6.12-39) unstable; urgency=medium + + * pathnames1.1 + * ansi-test clean target + + -- Camm Maguire Wed, 12 Oct 2016 01:32:05 +0000 + +gcl (2.6.12-38) unstable; urgency=medium + + * Version_2_6_13pre50 + + -- Camm Maguire Tue, 04 Oct 2016 19:45:38 +0000 + +gcl (2.6.12-37) unstable; urgency=medium + + * Version_2_6_13pre49 + + -- Camm Maguire Mon, 03 Oct 2016 14:54:09 +0000 + +gcl (2.6.12-36) unstable; urgency=medium + + * Version_2_6_13pre48 + + -- Camm Maguire Sat, 01 Oct 2016 12:10:25 +0000 + +gcl (2.6.12-35) unstable; urgency=medium + + * Version_2_6_13pre47 + + -- Camm Maguire Fri, 30 Sep 2016 21:21:43 +0000 + +gcl (2.6.12-34) unstable; urgency=medium + + * Version_2_6_13pre45 + + -- Camm Maguire Fri, 23 Sep 2016 19:42:37 +0000 + +gcl (2.6.12-33) unstable; urgency=medium + + * Version_2_6_13pre43 + + -- Camm Maguire Tue, 03 May 2016 16:17:03 +0000 + +gcl (2.6.12-32) unstable; urgency=medium + + * Version_2_6_13pre40 + * Bug fix: "[INTL:pt_BR] Brazilian Portuguese debconf templates + translation", thanks to Adriano Rafael Gomes (Closes: #811523). + + -- Camm Maguire Wed, 20 Apr 2016 15:18:35 +0000 + +gcl (2.6.12-31) unstable; urgency=medium + + * Version_2_6_13pre39 + + -- Camm Maguire Mon, 11 Apr 2016 00:41:11 +0000 + +gcl (2.6.12-30) unstable; urgency=medium + + * Version_2_6_13pre38 + + -- Camm Maguire Wed, 06 Apr 2016 00:20:15 +0000 + +gcl (2.6.12-29) unstable; urgency=medium + + * Version_2_6_13pre35; support latest binutils + * Bug fix: "gcl ftbfs on amd64 and i386 with binutils from + experimental", thanks to Matthias Klose (Closes: #803214). + + -- Camm Maguire Thu, 29 Oct 2015 15:20:27 +0000 + +gcl (2.6.12-28) unstable; urgency=medium + + * Version_2_6_13pre35; restore hppa build + + -- Camm Maguire Tue, 27 Oct 2015 20:00:46 +0000 + +gcl (2.6.12-27) unstable; urgency=medium + + * Version_2_6_13pre34; mips64 relocs; stack saving tail-recursive equal. + + -- Camm Maguire Tue, 27 Oct 2015 16:35:06 +0000 + +gcl (2.6.12-26) unstable; urgency=medium + + * Version_2_6_13pre32 + + -- Camm Maguire Fri, 23 Oct 2015 00:03:34 +0000 + +gcl (2.6.12-25) unstable; urgency=medium + + * Version_2_6_13pre31, kfreebsd and mips64 FTBFS fix + + -- Camm Maguire Fri, 16 Oct 2015 15:03:03 +0000 + +gcl (2.6.12-24) unstable; urgency=medium + + * Version_2_6_13pre30 + + -- Camm Maguire Fri, 16 Oct 2015 02:44:23 +0000 + +gcl (2.6.12-23) unstable; urgency=medium + + * Version_2_6_13pre29 + + -- Camm Maguire Thu, 15 Oct 2015 18:09:59 +0000 + +gcl (2.6.12-22) unstable; urgency=medium + + * Version_2_6_13pre27 + + -- Camm Maguire Tue, 13 Oct 2015 14:38:53 +0000 + +gcl (2.6.12-21) unstable; urgency=medium + + * Version_2_6_13pre26 + + -- Camm Maguire Wed, 07 Oct 2015 15:14:27 +0000 + +gcl (2.6.12-20) unstable; urgency=medium + + * Version_2_6_13pre25 + + -- Camm Maguire Thu, 01 Oct 2015 15:16:14 +0000 + +gcl (2.6.12-19) unstable; urgency=medium + + * Use-dpkg-buidflags-opt-levels-in-debian-rules, -O3 has bug in 5.2.1 + * Version_2_6_13pre24 + + -- Camm Maguire Wed, 30 Sep 2015 15:45:20 +0000 + +gcl (2.6.12-18) unstable; urgency=medium + + * Version_2_6_13pre22 + + -- Camm Maguire Tue, 29 Sep 2015 16:51:03 +0000 + +gcl (2.6.12-17) unstable; urgency=medium + + * Version_2_6_13pre20 + + -- Camm Maguire Sat, 26 Sep 2015 10:34:23 -0400 + +gcl (2.6.12-16) unstable; urgency=medium + + * Version_2_6_13pre19 + + -- Camm Maguire Fri, 25 Sep 2015 18:39:52 -0400 + +gcl (2.6.12-15) unstable; urgency=medium + + * Version_2_6_13pre18 + + -- Camm Maguire Fri, 25 Sep 2015 15:08:50 +0000 + +gcl (2.6.12-14) unstable; urgency=medium + + * Version_2_6_13pre17 + + -- Camm Maguire Thu, 28 May 2015 03:37:47 +0000 + +gcl (2.6.12-13) unstable; urgency=medium + + * Version_2_6_13pre16 + + -- Camm Maguire Fri, 15 May 2015 18:09:38 +0000 + +gcl (2.6.12-12) unstable; urgency=medium + + * Version_2_6_13pre13 + + -- Camm Maguire Fri, 01 May 2015 11:08:46 -0400 + +gcl (2.6.12-11) unstable; urgency=medium + + * Version_2_6_13pre12 + + -- Camm Maguire Thu, 30 Apr 2015 12:49:16 -0400 + +gcl (2.6.12-10) unstable; urgency=medium + + * rebuild in clean sid environment + + -- Camm Maguire Mon, 27 Apr 2015 15:34:15 -0400 + +gcl (2.6.12-9) unstable; urgency=medium + + * Version_2_6_13pre8b + * Bug fix: "ftbfs with GCC-5", thanks to Matthias Klose (Closes: + #777866). + + -- Camm Maguire Mon, 27 Apr 2015 12:32:49 -0400 + +gcl (2.6.12-8) unstable; urgency=medium + + * Version_2_6_13pre7 + + -- Camm Maguire Fri, 24 Apr 2015 13:38:30 -0400 + +gcl (2.6.12-7) unstable; urgency=medium + + * Version_2_6_13pre6 + + -- Camm Maguire Thu, 23 Apr 2015 13:43:45 -0400 + +gcl (2.6.12-6) unstable; urgency=medium + + * Version_2_6_13pre5 + + -- Camm Maguire Wed, 22 Apr 2015 17:14:16 -0400 + +gcl (2.6.12-5) unstable; urgency=medium + + * Version_2_6_13pre4 + + -- Camm Maguire Wed, 22 Apr 2015 10:25:36 -0400 + +gcl (2.6.12-4) unstable; urgency=medium + + * Version_2_6_13pre3a + + -- Camm Maguire Mon, 20 Apr 2015 13:26:36 -0400 + +gcl (2.6.12-3) unstable; urgency=medium + + * Version_2_6_13pre2 + + -- Camm Maguire Fri, 17 Apr 2015 15:50:37 -0400 + +gcl (2.6.12-2) unstable; urgency=medium + + * Version_2_6_13pre1 + + -- Camm Maguire Wed, 26 Nov 2014 11:12:46 -0500 + +gcl (2.6.12-1) unstable; urgency=medium + + * New upstream release + + -- Camm Maguire Tue, 28 Oct 2014 09:56:15 -0400 + +gcl (2.6.11-6) unstable; urgency=medium + + * 2.6.12pre5 + + -- Camm Maguire Thu, 23 Oct 2014 17:33:22 -0400 + +gcl (2.6.11-5) unstable; urgency=medium + + * 2.6.12pre4 + + -- Camm Maguire Sat, 18 Oct 2014 09:46:34 -0400 + +gcl (2.6.11-4) unstable; urgency=medium + + * 2.6.12pre3 + + -- Camm Maguire Thu, 16 Oct 2014 11:56:15 -0400 + +gcl (2.6.11-3) unstable; urgency=medium + + * 2.6.12pre2 + + -- Camm Maguire Sun, 28 Sep 2014 20:56:18 -0400 + +gcl (2.6.11-2) unstable; urgency=medium + + * 2.6.12pre1 + + -- Camm Maguire Fri, 19 Sep 2014 14:49:25 -0400 + +gcl (2.6.11-1) unstable; urgency=medium + + * New upstream release + + -- Camm Maguire Sat, 06 Sep 2014 12:28:46 -0400 + +gcl (2.6.10-54) unstable; urgency=medium + + * remove-debug-message-from-BUGGY_MAXIMUM_SSCANF_LENGTH-code + + -- Camm Maguire Fri, 05 Sep 2014 10:35:46 -0400 + +gcl (2.6.10-53) unstable; urgency=medium + + * ppc64le-support-headers + + -- Camm Maguire Wed, 03 Sep 2014 15:02:12 -0400 + +gcl (2.6.10-52) unstable; urgency=medium + + * accept-TMP-paths-with-types-versions + + -- Camm Maguire Fri, 29 Aug 2014 17:51:04 -0400 + +gcl (2.6.10-51) unstable; urgency=medium + + * fix-match-function-proclaim-skew + + -- Camm Maguire Fri, 29 Aug 2014 16:40:30 +0000 + +gcl (2.6.10-50) unstable; urgency=medium + + * trial_selinux_support + + -- Camm Maguire Thu, 21 Aug 2014 17:29:50 +0000 + +gcl (2.6.10-49) unstable; urgency=medium + + * R_ARM_JUMP24 + + -- Camm Maguire Wed, 20 Aug 2014 17:08:23 +0000 + +gcl (2.6.10-48) unstable; urgency=medium + + * try-SGC-for-aarch64 + + -- Camm Maguire Tue, 19 Aug 2014 18:35:22 +0000 + +gcl (2.6.10-47) unstable; urgency=medium + + * set-stack_guard-after-alloc-setup + * Bug fix: "work around build failure on AArch64", thanks to Matthias + Klose (Closes: #758101). + + -- Camm Maguire Thu, 14 Aug 2014 19:36:48 +0000 + +gcl (2.6.10-46) unstable; urgency=medium + + * R_AARCH64_LDST128_ABS_LO12_NC + + -- Camm Maguire Wed, 13 Aug 2014 21:39:50 +0000 + +gcl (2.6.10-45) unstable; urgency=medium + + * fix sh4 CLEAR_CACHE + + -- Camm Maguire Sun, 10 Aug 2014 20:12:03 +0000 + +gcl (2.6.10-44) unstable; urgency=medium + + * clear_protect_memory on all elf machines + + -- Camm Maguire Sat, 09 Aug 2014 00:55:17 +0000 + +gcl (2.6.10-43) unstable; urgency=medium + + * mips uses builtin_clear_cache like mipsel + + -- Camm Maguire Fri, 08 Aug 2014 23:42:42 +0000 + +gcl (2.6.10-42) unstable; urgency=medium + + * backport travel_push_new from master + + -- Camm Maguire Wed, 06 Aug 2014 20:14:14 +0000 + +gcl (2.6.10-41) unstable; urgency=medium + + * protos and CFLAGS for axiom extensions + + -- Camm Maguire Wed, 06 Aug 2014 01:54:38 +0000 + +gcl (2.6.10-40) unstable; urgency=medium + + * better solaris unexec fix + + -- Camm Maguire Mon, 04 Aug 2014 22:00:54 +0000 + +gcl (2.6.10-39) unstable; urgency=medium + + * earlier prelink_init, phys_pages w/o malloc + + -- Camm Maguire Mon, 04 Aug 2014 16:52:09 +0000 + +gcl (2.6.10-38) unstable; urgency=medium + + * error on overflow of array dimensions + + -- Camm Maguire Fri, 01 Aug 2014 14:35:44 +0000 + +gcl (2.6.10-37) unstable; urgency=medium + + * FILE * casts for windows feof wrapper + + -- Camm Maguire Thu, 31 Jul 2014 02:17:11 +0000 + +gcl (2.6.10-36) unstable; urgency=medium + + * better casts for frs_jmpbuf + + -- Camm Maguire Wed, 30 Jul 2014 17:00:06 +0000 + +gcl (2.6.10-35) unstable; urgency=medium + + * find_sym_ptable typo fix + + -- Camm Maguire Tue, 29 Jul 2014 18:08:57 +0000 + +gcl (2.6.10-34) unstable; urgency=medium + + * --enable-prelink configure arg; stack_chk_guard for 68k + + -- Camm Maguire Fri, 25 Jul 2014 20:39:10 +0000 + +gcl (2.6.10-33) unstable; urgency=medium + + * hurd stack_guard, ppc64 C_GC_OFFSET + + -- Camm Maguire Thu, 24 Jul 2014 21:46:24 +0000 + +gcl (2.6.10-32) unstable; urgency=medium + + * __stack_chk_guard fix for arm/sh4 + + -- Camm Maguire Wed, 23 Jul 2014 18:12:56 +0000 + +gcl (2.6.10-31) unstable; urgency=medium + + * dpkg-buildflags trial + + -- Camm Maguire Tue, 22 Jul 2014 20:06:10 +0000 + +gcl (2.6.10-30) unstable; urgency=medium + + * fix offsets ppc + + -- Camm Maguire Tue, 22 Jul 2014 17:12:27 +0000 + +gcl (2.6.10-29) unstable; urgency=medium + + * fix unexec file offsets + + -- Camm Maguire Tue, 22 Jul 2014 15:36:45 +0000 + +gcl (2.6.10-28) unstable; urgency=high + + * enable prelink + + -- Camm Maguire Fri, 18 Jul 2014 19:24:38 +0000 + +gcl (2.6.10-27) unstable; urgency=high + + * protect closure calls from gc + + -- Camm Maguire Wed, 16 Jul 2014 16:15:33 +0000 + +gcl (2.6.10-26) unstable; urgency=high + + * Bug fix: "packages should not build-depend on binutils-dev", thanks to + Matthias Klose (Closes: #754840). Please note that gcl has long + depended on binutils-dev for good reason -- happily it is no longer + necessary + + -- Camm Maguire Tue, 15 Jul 2014 16:04:04 +0000 + +gcl (2.6.10-25) unstable; urgency=high + + * rebuild to get gcc fixes on i386 + + -- Camm Maguire Fri, 11 Jul 2014 03:14:45 +0000 + +gcl (2.6.10-24) unstable; urgency=high + + * try default gcc 4.9 + * access libopcodes without link dependency via dlopen + * Bug fix: "please switch to emacs24", thanks to Gabriele Giacone + (Closes: #754012). + + -- Camm Maguire Wed, 09 Jul 2014 17:34:21 +0000 + +gcl (2.6.10-23) unstable; urgency=high + + * rebuild latest binutils + + -- Camm Maguire Sat, 05 Jul 2014 23:19:27 +0000 + +gcl (2.6.10-22) unstable; urgency=high + + * gcc-4.8 on i386, 4.9 has bugs at present + + -- Camm Maguire Fri, 04 Jul 2014 01:36:06 +0000 + +gcl (2.6.10-21) unstable; urgency=high + + * 2.6.11pre test 20 + + -- Camm Maguire Mon, 30 Jun 2014 22:43:27 +0000 + +gcl (2.6.10-20) unstable; urgency=high + + * 2.6.11pre test 19 + + -- Camm Maguire Sun, 29 Jun 2014 17:59:59 +0000 + +gcl (2.6.10-19) unstable; urgency=high + + * 2.6.11pre test 18 + + -- Camm Maguire Sun, 29 Jun 2014 16:00:07 +0000 + +gcl (2.6.10-18) unstable; urgency=high + + * 2.6.11pre test 17 + + -- Camm Maguire Sat, 28 Jun 2014 16:57:54 +0000 + +gcl (2.6.10-17) unstable; urgency=high + + * 2.6.11pre test 16 + + -- Camm Maguire Thu, 26 Jun 2014 18:06:42 +0000 + +gcl (2.6.10-16) unstable; urgency=high + + * 2.6.11pre test 15 + + -- Camm Maguire Wed, 18 Jun 2014 17:37:36 +0000 + +gcl (2.6.10-15) unstable; urgency=high + + * 2.6.11pre test 14 + + -- Camm Maguire Tue, 17 Jun 2014 00:39:35 +0000 + +gcl (2.6.10-14) unstable; urgency=high + + * 2.6.11pre test 13 + + -- Camm Maguire Sat, 14 Jun 2014 13:43:57 +0000 + +gcl (2.6.10-13) unstable; urgency=high + + * 2.6.11pre test 12 + + -- Camm Maguire Tue, 20 May 2014 16:00:22 +0000 + +gcl (2.6.10-12) unstable; urgency=high + + * 2.6.11pre test 11 + + -- Camm Maguire Fri, 16 May 2014 17:41:33 +0000 + +gcl (2.6.10-11) unstable; urgency=high + + * 2.6.11pre test 10 + + -- Camm Maguire Fri, 16 May 2014 13:18:07 +0000 + +gcl (2.6.10-10) unstable; urgency=high + + * 2.6.11pre test 9 + + -- Camm Maguire Wed, 07 May 2014 17:10:30 +0000 + +gcl (2.6.10-9) unstable; urgency=high + + * 2.6.11pre test 8 + + -- Camm Maguire Fri, 25 Apr 2014 19:53:10 +0000 + +gcl (2.6.10-8) unstable; urgency=high + + * 2.6.11pre test 7 + + -- Camm Maguire Mon, 21 Apr 2014 14:09:37 +0000 + +gcl (2.6.10-7) unstable; urgency=high + + * 2.6.11pre test 6 + + -- Camm Maguire Sat, 19 Apr 2014 17:52:17 +0000 + +gcl (2.6.10-6) unstable; urgency=high + + * 2.6.11pre test 5 + + -- Camm Maguire Fri, 18 Apr 2014 15:06:09 +0000 + +gcl (2.6.10-5) unstable; urgency=high + + * 2.6.11pre test 4 + + -- Camm Maguire Tue, 15 Apr 2014 20:30:13 +0000 + +gcl (2.6.10-4) unstable; urgency=high + + * 2.6.11pre test 3 + * Bug fix: "debian/rules uses DEB_BUILD_* macros instead of DEB_HOST_* + macros", thanks to Matthias Klose (Closes: #743520). + + -- Camm Maguire Wed, 09 Apr 2014 13:15:32 +0000 + +gcl (2.6.10-3) unstable; urgency=high + + * 2.6.11pre test 2 + + -- Camm Maguire Thu, 03 Apr 2014 14:24:23 +0000 + +gcl (2.6.10-2) unstable; urgency=high + + * 2.6.11pre test 1 + * Bug fix: "FTBFS: gcl_readline.d:472:39: error: 'CPPFunction' + undeclared (first use in this function)", thanks to David Suárez + (Closes: #741819). + + -- Camm Maguire Mon, 24 Mar 2014 15:47:01 +0000 + +gcl (2.6.10-1) unstable; urgency=high + + * New upstream release + + -- Camm Maguire Wed, 13 Nov 2013 18:39:19 +0000 + +gcl (2.6.9-17) unstable; urgency=high + + * 2.6.10pre test 17 + + -- Camm Maguire Mon, 11 Nov 2013 19:41:45 +0000 + +gcl (2.6.9-16) unstable; urgency=high + + * 2.6.10pre test 16 + * Bug fix: "gcl 2.6.7+dfsga-20 needs 1 GB disk space on amd64", thanks + to Edi Meier (Closes: #714507). + * Bug fix: "[INTL:ja] New Japanese translation", thanks to victory + (Closes: #718925). + + -- Camm Maguire Sat, 09 Nov 2013 13:34:32 +0000 + +gcl (2.6.9-15) unstable; urgency=high + + * 2.6.10pre test 15 + + -- Camm Maguire Sat, 02 Nov 2013 22:21:16 +0000 + +gcl (2.6.9-14) unstable; urgency=high + + * 2.6.10pre test 14 + + -- Camm Maguire Wed, 23 Oct 2013 17:44:14 +0000 + +gcl (2.6.9-13) unstable; urgency=high + + * environment allocation unrandomize.h + + -- Camm Maguire Mon, 21 Oct 2013 00:20:16 +0000 + +gcl (2.6.9-12) unstable; urgency=high + + * 2.6.10pre test 13 + + -- Camm Maguire Fri, 18 Oct 2013 14:18:17 +0000 + +gcl (2.6.9-11) unstable; urgency=high + + * 2.6.10pre test 12, s390, mingw cleanup, make_bignum bug fix + + -- Camm Maguire Tue, 15 Oct 2013 23:32:09 +0000 + +gcl (2.6.9-10) unstable; urgency=high + + * fast-fixnums + + -- Camm Maguire Fri, 11 Oct 2013 15:05:58 +0000 + +gcl (2.6.9-9) unstable; urgency=high + + * 2.6.10pre test 10 and 11 + + -- Camm Maguire Wed, 02 Oct 2013 19:12:36 +0000 + +gcl (2.6.9-8) unstable; urgency=high + + * 2.6.10pre test 8 and 9 + + -- Camm Maguire Tue, 01 Oct 2013 21:00:19 +0000 + +gcl (2.6.9-7) unstable; urgency=high + + * 2.6.10pre test 6 and 7 + + -- Camm Maguire Mon, 30 Sep 2013 19:34:38 +0000 + +gcl (2.6.9-6) unstable; urgency=high + + * 2.6.10pre test 5 + + -- Camm Maguire Tue, 24 Sep 2013 17:03:24 +0000 + +gcl (2.6.9-5) unstable; urgency=high + + * 2.6.10pre test 4 + + -- Camm Maguire Mon, 23 Sep 2013 19:27:36 +0000 + +gcl (2.6.9-4) unstable; urgency=high + + * 2.6.10pre test 3 + + -- Camm Maguire Mon, 23 Sep 2013 16:30:09 +0000 + +gcl (2.6.9-3) unstable; urgency=high + + * 2.6.10pre test 2 + + -- Camm Maguire Sun, 22 Sep 2013 03:27:10 +0000 + +gcl (2.6.9-2) unstable; urgency=high + + * 2.6.10pre test + + -- Camm Maguire Sat, 21 Sep 2013 04:14:55 +0000 + +gcl (2.6.9-1) unstable; urgency=high + + * New upstream release + + -- Camm Maguire Wed, 28 Aug 2013 16:49:18 +0000 + +gcl (2.6.7+dfsga-40) unstable; urgency=high + + * fix allocate functions + + -- Camm Maguire Tue, 06 Aug 2013 22:36:37 +0000 + +gcl (2.6.7+dfsga-39) unstable; urgency=high + + * lower initial contiguous and relblock allocations, set *ihs-top* + properly on startup, protect memory->cfd.cfd_start initialization from + gc + + -- Camm Maguire Mon, 05 Aug 2013 17:38:22 +0000 + +gcl (2.6.7+dfsga-38) unstable; urgency=high + + * robustify near oom handling to fix axiom compile of EXPEXPAN on mips + + -- Camm Maguire Fri, 02 Aug 2013 16:25:16 +0000 + +gcl (2.6.7+dfsga-37) unstable; urgency=high + + * ppc64 gprof fix + + -- Camm Maguire Fri, 26 Jul 2013 23:40:14 +0000 + +gcl (2.6.7+dfsga-36) unstable; urgency=high + + * min_pagewidth=14 on mips + + -- Camm Maguire Fri, 26 Jul 2013 02:20:56 +0000 + +gcl (2.6.7+dfsga-35) unstable; urgency=high + + * latest gcc on all platforms, no gprof ppc64, -O1 ia64, -O0 alpha + + -- Camm Maguire Thu, 25 Jul 2013 14:42:48 +0000 + +gcl (2.6.7+dfsga-34) unstable; urgency=high + + * sgc link_array mark fix;rb_end across save fix;more stable gcc on older arches + + -- Camm Maguire Tue, 23 Jul 2013 17:11:23 +0000 + +gcl (2.6.7+dfsga-33) unstable; urgency=high + + * fix mark_link_array for marked sLAlink_arrayA->s.s_dbind + + -- Camm Maguire Mon, 22 Jul 2013 19:00:43 +0000 + +gcl (2.6.7+dfsga-32) unstable; urgency=high + + * protect mark_link_array in sgc + + -- Camm Maguire Sat, 20 Jul 2013 00:16:07 +0000 + +gcl (2.6.7+dfsga-31) unstable; urgency=high + + * properly clean link array on gc + + -- Camm Maguire Fri, 19 Jul 2013 20:34:34 +0000 + +gcl (2.6.7+dfsga-30) unstable; urgency=high + + * fix gcl.script compiler::link, darwin compile warnings + + -- Camm Maguire Mon, 15 Jul 2013 20:35:03 +0000 + +gcl (2.6.7+dfsga-29) unstable; urgency=high + + * fix compiler::link in presence of gcl.script + + -- Camm Maguire Mon, 15 Jul 2013 16:23:33 +0000 + +gcl (2.6.7+dfsga-28) unstable; urgency=high + + * install unixport/gcl.script + + -- Camm Maguire Sat, 13 Jul 2013 18:42:28 +0000 + +gcl (2.6.7+dfsga-27) unstable; urgency=high + + * workaround for ia64 and hurd brk issues + + -- Camm Maguire Fri, 12 Jul 2013 21:44:54 +0000 + +gcl (2.6.7+dfsga-26) unstable; urgency=high + + * -- command line support, map-shared in unexec + + -- Camm Maguire Fri, 12 Jul 2013 00:52:35 +0000 + +gcl (2.6.7+dfsga-25) unstable; urgency=high + + * alpha, mips, 68k + + -- Camm Maguire Wed, 10 Jul 2013 18:29:37 +0000 + +gcl (2.6.7+dfsga-24) unstable; urgency=high + + * sgc and reloc fixes + + -- Camm Maguire Mon, 08 Jul 2013 13:56:33 +0000 + +gcl (2.6.7+dfsga-23) unstable; urgency=high + + * fix for maxima on kfbsd and sparc + + -- Camm Maguire Wed, 03 Jul 2013 19:19:16 +0000 + +gcl (2.6.7+dfsga-22) unstable; urgency=high + + * fix stack definition issues on i386 + + -- Camm Maguire Tue, 02 Jul 2013 18:27:54 +0000 + +gcl (2.6.7+dfsga-21) unstable; urgency=high + + * near out of memory robustification + + -- Camm Maguire Tue, 02 Jul 2013 15:32:58 +0000 + +gcl (2.6.7+dfsga-20) unstable; urgency=high + + * fix 3GB workaround for gprof + + -- Camm Maguire Fri, 21 Jun 2013 11:09:01 -0400 + +gcl (2.6.7+dfsga-19) unstable; urgency=high + + * work around 3GB personality/alloca/malloc bug + + -- Camm Maguire Fri, 21 Jun 2013 02:46:49 +0000 + +gcl (2.6.7+dfsga-18) unstable; urgency=high + + * alpha NULL_OR_ON_C_STACK, attempt to get 32 immfix space with + ADDR_LIMIT_3GB|ADDR_COMPAT_LAYOUT personality, clean compile with no + immfix + + -- Camm Maguire Thu, 20 Jun 2013 20:24:29 +0000 + +gcl (2.6.7+dfsga-17) unstable; urgency=high + + * small optimizations, #= nil fix + + -- Camm Maguire Wed, 19 Jun 2013 16:23:27 +0000 + +gcl (2.6.7+dfsga-16) unstable; urgency=high + + * no linker script on hurd;fix OBJ_ALIGN + + -- Camm Maguire Thu, 13 Jun 2013 15:35:00 +0000 + +gcl (2.6.7+dfsga-15) unstable; urgency=high + + * ia64 fix + + -- Camm Maguire Thu, 13 Jun 2013 02:38:47 +0000 + +gcl (2.6.7+dfsga-14) unstable; urgency=high + + * eliminate maxpage/dbegin, restore windows and macosx builds + + -- Camm Maguire Wed, 12 Jun 2013 21:42:29 +0000 + +gcl (2.6.7+dfsga-13) unstable; urgency=low + + * ia64/hurd/s390 and SGC + + -- Camm Maguire Sun, 09 Jun 2013 00:23:51 +0000 + +gcl (2.6.7+dfsga-12) unstable; urgency=low + + * ia64/hurd/s390 + + -- Camm Maguire Sat, 08 Jun 2013 15:24:46 +0000 + +gcl (2.6.7+dfsga-11) unstable; urgency=high + + * 2.6.9 test + + -- Camm Maguire Fri, 07 Jun 2013 21:46:41 +0000 + +gcl (2.6.7+dfsga-10) unstable; urgency=high + + * output mips make bug text to stderr + + -- Camm Maguire Sat, 25 May 2013 12:24:35 +0000 + +gcl (2.6.7+dfsga-9) unstable; urgency=high + + * mips make bug workaround + + -- Camm Maguire Wed, 22 May 2013 14:23:43 +0000 + +gcl (2.6.7+dfsga-8) unstable; urgency=high + + * revert doubled default maxpage + * export *read-eval* + + -- Camm Maguire Tue, 21 May 2013 14:42:05 +0000 + +gcl (2.6.7+dfsga-7) unstable; urgency=high + + * export ansi symbols + + -- Camm Maguire Sat, 11 May 2013 21:36:56 +0000 + +gcl (2.6.7+dfsga-6) unstable; urgency=high + + * fast hash-equal in compiler + + -- Camm Maguire Sat, 11 May 2013 19:11:42 +0000 + +gcl (2.6.7+dfsga-5) unstable; urgency=high + + * Bug fix: "FTBFS: cp: cannot stat + 'debian/tmp/usr/share/info/gcl-si.info': No such file or + directory", thanks to Lucas Nussbaum (Closes: #707490). + + -- Camm Maguire Fri, 10 May 2013 18:09:14 +0000 + +gcl (2.6.7+dfsga-4) unstable; urgency=high + + * sgc-on fix with latest gcc + + -- Camm Maguire Tue, 23 Apr 2013 18:45:11 +0000 + +gcl (2.6.7+dfsga-3) unstable; urgency=high + + * hash depth bug fix + * new s390 reloc + + -- Camm Maguire Thu, 24 Jan 2013 19:46:30 +0000 + +gcl (2.6.7+dfsga-2) unstable; urgency=high + + * more arm relocs supported;check default timezone dynamically;follow + bash ~ semantics in user-homedir-pathname + + -- Camm Maguire Mon, 21 Jan 2013 18:41:06 +0000 + +gcl (2.6.7+dfsga-1) unstable; urgency=high + + * Acknowledge Non-maintainer upload. + (thanks David Prévot ) + * Remove unused and non DFSG-compliant gmp3/gmp.* from source. + (Closes: #695721) + * Show translated debconf templates, thanks to Denis Barbier for the + analysis and the proposed fixes. (Closes: #691946) + * trim excess digits from printed floats + + -- Camm Maguire Tue, 15 Jan 2013 20:46:25 +0000 + +gcl (2.6.7-108) unstable; urgency=high + + * Depend on emacs23 | emacsen to allow wheezy propagation + + -- Camm Maguire Mon, 08 Oct 2012 18:08:36 +0000 + +gcl (2.6.7-107) unstable; urgency=high + + * mode 644 on ucf newfile + + -- Camm Maguire Wed, 03 Oct 2012 20:38:43 +0000 + +gcl (2.6.7-106) unstable; urgency=high + + * Bug fix: "modifies conffiles (policy 10.7.3): /etc/default/gcl", + thanks to Andreas Beckmann (Closes: #688201). + + -- Camm Maguire Wed, 03 Oct 2012 16:52:10 +0000 + +gcl (2.6.7-105) unstable; urgency=high + + * restore #DEBHELPER# to postinst and postrm scripts + + -- Camm Maguire Mon, 01 Oct 2012 17:31:43 +0000 + +gcl (2.6.7-104) unstable; urgency=high + + * Bug fix: "modifies conffiles (policy 10.7.3): /etc/default/gcl", + thanks to Andreas Beckmann (Closes: #688201). + + -- Camm Maguire Mon, 01 Oct 2012 15:32:52 +0000 + +gcl (2.6.7-103) unstable; urgency=high + + * sfaslelf.c: FIX_HIDDEN_SYMBOLS + + -- Camm Maguire Wed, 22 Aug 2012 15:13:12 +0000 + +gcl (2.6.7-102) unstable; urgency=high + + * Fix hash key distribution bug, bitvector equal bug + * distinguish car position in equal-hash of lists + + -- Camm Maguire Mon, 20 Aug 2012 17:33:26 +0000 + +gcl (2.6.7-101) unstable; urgency=high + + * add alpha, ppc, ppc64, and ia64 to __builtin__clear_cache exception + list as per gcc maintainers + * lintian cleanups + + -- Camm Maguire Sat, 05 May 2012 23:18:56 +0000 + +gcl (2.6.7-100) unstable; urgency=high + + * nil case keylist support + * Bug fix: "[INTL:da] Danish translation of the debconf templates gcl", + thanks to Joe Dalton (Closes: #666528). + + -- Camm Maguire Fri, 20 Apr 2012 02:25:26 +0000 + +gcl (2.6.7-99) unstable; urgency=low + + * case default error checking + + -- Camm Maguire Fri, 23 Mar 2012 14:14:44 +0000 + +gcl (2.6.7-98) unstable; urgency=low + + * restore traditional make-sequence,make-array, and coerce, and + optimize replace, as 2.6.8 compiler is still too weak re: inlines + + -- Camm Maguire Fri, 20 Jan 2012 19:55:45 +0000 + +gcl (2.6.7-97) unstable; urgency=low + + * evade __builtin___clear_cache on hppa + * make-array;make-sequence;replace;coerce + + -- Camm Maguire Fri, 20 Jan 2012 05:13:22 +0000 + +gcl (2.6.7-96) unstable; urgency=low + + * better XDR detection; no __builtin_clear_cache on sh4 + + -- Camm Maguire Wed, 18 Jan 2012 01:32:43 +0000 + +gcl (2.6.7-95) unstable; urgency=low + + * clear_cache after mprotect + + -- Camm Maguire Tue, 17 Jan 2012 03:54:56 +0000 + +gcl (2.6.7-94) unstable; urgency=low + + * optimize unwind at O0 to workaround gcc bug; centralize on + __builtin__clear_cache when available;arm_thm_call reloc support + + -- Camm Maguire Mon, 16 Jan 2012 20:10:07 +0000 + +gcl (2.6.7-93) unstable; urgency=low + + * remove C_GC_OFFSET for sparc64 + * remove ncurses dependency for readline + * Bug fix: "FTBFS: dpkg-buildpackage: error: dpkg-source -b gcl-2.6.7 + gave error exit status 2", thanks to Didier Raboud (Closes: #643131). + * Bug fix: "drops readline support if rebuilt", thanks to Sven Joachim + (Closes: #646735). + * lower opts on sparc64 asof gcc 4.6.1 + + -- Camm Maguire Wed, 11 Jan 2012 21:04:23 +0000 + +gcl (2.6.7-92) unstable; urgency=low + + * remove gprof on arm as mcount calls are 24/22bit -- marginally + accessible + + -- Camm Maguire Sat, 07 Jan 2012 02:42:06 +0000 + +gcl (2.6.7-91) unstable; urgency=low + + * s390x reloc support + * lower C optimization on ia64, arm and mips for now + + -- Camm Maguire Thu, 05 Jan 2012 17:30:01 +0000 + +gcl (2.6.7-90) unstable; urgency=low + + * libtirpc check for newest glibc + * read_preserving_whitespace fix + * armhf reloc support + * s390x support + * try C_GC_OFFSET for sparc64 + + -- Camm Maguire Wed, 04 Jan 2012 19:51:13 +0000 + +gcl (2.6.7-89) unstable; urgency=low + + * support new mips relocs + * lower opt to work around gcc 4.6 bug on arm + + -- Camm Maguire Wed, 11 May 2011 20:06:04 +0000 + +gcl (2.6.7-88) unstable; urgency=low + + * Bug fix: "FTBFS: gcl_arraylib.c:4:42: error: 'VV' undeclared + (first use in this function)", thanks to Lucas Nussbaum (Closes: + #625032). + + -- Camm Maguire Mon, 09 May 2011 16:00:21 +0000 + +gcl (2.6.7-87) unstable; urgency=low + + * mips reloc fix;configure default dlopen fix;clean rules and makefiles + + -- Camm Maguire Fri, 05 Nov 2010 13:29:05 +0000 + +gcl (2.6.7-86) unstable; urgency=low + + * remove binutils subdir, configure and make changes + + -- Camm Maguire Thu, 04 Nov 2010 17:55:48 +0000 + +gcl (2.6.7-85) unstable; urgency=low + + * fix mips relocs for non-static clines + + -- Camm Maguire Tue, 02 Nov 2010 13:56:40 +0000 + +gcl (2.6.7-84) unstable; urgency=low + + * better mips relocs, fix link on mingw32 + + -- Camm Maguire Sat, 30 Oct 2010 00:07:39 +0000 + +gcl (2.6.7-83) unstable; urgency=low + + * fix alpha stubs; fix sparc64 typo; print armhf relocs + + -- Camm Maguire Thu, 28 Oct 2010 13:43:16 +0000 + +gcl (2.6.7-82) unstable; urgency=low + + * mips64 fixes + + -- Camm Maguire Tue, 26 Oct 2010 18:20:04 +0000 + +gcl (2.6.7-81) unstable; urgency=low + + * sparc64;mips64 + + -- Camm Maguire Tue, 26 Oct 2010 03:33:52 +0000 + +gcl (2.6.7-80) unstable; urgency=low + + * alpha stubs; sgc mips kernel bug test; mips GPREL32 reloc + + -- Camm Maguire Mon, 25 Oct 2010 19:52:51 +0000 + +gcl (2.6.7-79) unstable; urgency=low + + * mips ld_bind_now, disable sgc workaround mips SIGBUS bug + + -- Camm Maguire Wed, 20 Oct 2010 15:31:59 +0000 + +gcl (2.6.7-78) unstable; urgency=low + + * mips local got relocs + + -- Camm Maguire Tue, 12 Oct 2010 17:15:35 +0000 + +gcl (2.6.7-77) unstable; urgency=low + + * workaround gcc alpha bug + * fix alpha reloc + + -- Camm Maguire Fri, 01 Oct 2010 21:25:11 +0000 + +gcl (2.6.7-76) unstable; urgency=low + + * fix page_multiple usage for runtime pagesize variance and stable mipsel builds + * sparc64 support + + -- Camm Maguire Fri, 01 Oct 2010 19:18:47 +0000 + +gcl (2.6.7-75) unstable; urgency=low + + * fix alpha bug + + -- Camm Maguire Tue, 28 Sep 2010 20:23:21 +0000 + +gcl (2.6.7-74) unstable; urgency=low + + * fix alpha relocs for axiom + + -- Camm Maguire Tue, 28 Sep 2010 16:07:38 +0000 + +gcl (2.6.7-73) unstable; urgency=low + + * sparc reloc updates + * fast-link fix + + -- Camm Maguire Fri, 24 Sep 2010 19:23:16 +0000 + +gcl (2.6.7-72) unstable; urgency=low + + * remove unused symbols from gcl_cmpopt.lsp + * reloc updates + * clear gcc warning + * default tilde expansion to HOME env in absence of passwd + * configure typo fix + + -- Camm Maguire Wed, 22 Sep 2010 19:32:52 +0000 + +gcl (2.6.7-71) unstable; urgency=low + + * print sparc64 relocs + + -- Camm Maguire Sat, 28 Aug 2010 14:50:00 +0000 + +gcl (2.6.7-70) unstable; urgency=low + + * sparc64/m68k + + -- Camm Maguire Fri, 27 Aug 2010 16:54:11 +0000 + +gcl (2.6.7-69) unstable; urgency=low + + * Bug fix: "non-standard gcc/g++ used for build (gcc-4.3)", thanks to + Matthias Klose (Closes: #594280). + + -- Camm Maguire Thu, 26 Aug 2010 19:08:39 +0000 + +gcl (2.6.7-68) unstable; urgency=low + + * ppc/mips elf reloc fixes + + -- Camm Maguire Mon, 23 Aug 2010 20:54:30 +0000 + +gcl (2.6.7-67) unstable; urgency=low + + * Fix compiler::link ansi combo + + -- Camm Maguire Sat, 21 Aug 2010 02:05:37 +0000 + +gcl (2.6.7-66) unstable; urgency=low + + * ppc autobuild fix + * Bug fix: "FTBFS: sfasli.c:139: error: invalid initializer", thanks to + Lucas Nussbaum (Closes: #593037). + * Bug fix: "FTBFS on powerpc: Error: The function TK::GET-AUTOLOADS is + undefined.", thanks to Mehdi Dogguy (Closes: #593191). + + -- Camm Maguire Fri, 20 Aug 2010 01:25:09 +0000 + +gcl (2.6.7-65) unstable; urgency=low + + * autobuilder fixes + + -- Camm Maguire Sat, 14 Aug 2010 11:30:46 +0000 + +gcl (2.6.7-64) unstable; urgency=low + + * configure fix + + -- Camm Maguire Fri, 13 Aug 2010 23:26:07 +0000 + +gcl (2.6.7-63) unstable; urgency=low + + * macosx support, ppc, i386 and x86_64 -- sfaslmacho.c + * windows/wine support -- sfaslcoff.c + * better custreloc support obviating my_plt -- sfaslelf.c + * debian default custreloc build where supported, all but ia64 and hppa + * fix mingw/wine path issues + + -- Camm Maguire Fri, 13 Aug 2010 16:08:49 +0000 + +gcl (2.6.7-62) unstable; urgency=high + + * more stable sgc detection via h/tsgc.h + * fix plt.h bug on hppa + * sublis1-inline fix for acl2 + + -- Camm Maguire Mon, 26 Jul 2010 16:03:54 +0000 + +gcl (2.6.7-61) unstable; urgency=high + + * mac osx support + * fix undef sgc bug in cmpinclude.h + + -- Camm Maguire Tue, 20 Jul 2010 14:50:19 +0000 + +gcl (2.6.7-60) unstable; urgency=high + + * fix sh4 support + + -- Camm Maguire Thu, 29 Apr 2010 18:09:04 +0000 + +gcl (2.6.7-59) unstable; urgency=high + + * fix hurd support + + -- Camm Maguire Fri, 23 Apr 2010 17:12:54 +0000 + +gcl (2.6.7-58) unstable; urgency=high + + * hurd support + * sh4 support + + -- Camm Maguire Fri, 23 Apr 2010 05:09:29 +0000 + +gcl (2.6.7-57) unstable; urgency=high + + * static function pointer wrapper for gcl_gmp_allocfun, stabilizing gmp + on hppa/ia64 + + -- Camm Maguire Mon, 12 Apr 2010 22:28:41 +0000 + +gcl (2.6.7-56) unstable; urgency=high + + * __builtin___clear_cache on arm + * gcc-4.3 on alpha + + -- Camm Maguire Thu, 28 Jan 2010 00:32:16 +0000 + +gcl (2.6.7-55) unstable; urgency=low + + * SGC fix, debian override fix, xgcl update + * SGC fix for relocatable and contiguous gmp storage + * configure fix for arm and hppa + + -- Camm Maguire Tue, 26 Jan 2010 19:43:08 +0000 + +gcl (2.6.7-54) unstable; urgency=low + + * robustify user_match, unrandomize, read-char-no-hang for sockets + * SA_SIGINFO for 386-linux + * if cmpinclude.h is not available, use *cmpinclude-string* in compiler-pass2 + + -- Camm Maguire Wed, 20 Jan 2010 19:02:28 +0000 + +gcl (2.6.7-53) unstable; urgency=low + + * revert round ratio to nearest + + -- Camm Maguire Tue, 05 Jan 2010 03:06:59 +0000 + +gcl (2.6.7-52) unstable; urgency=low + + * SIGINFO for kfreebsd-386 + + -- Camm Maguire Mon, 04 Jan 2010 17:49:05 +0000 + +gcl (2.6.7-51) unstable; urgency=low + + * user_match exscapes once only + + -- Camm Maguire Sun, 03 Jan 2010 05:31:20 +0000 + +gcl (2.6.7-50) unstable; urgency=low + + * gcc 4.4 warning cleanups + + -- Camm Maguire Thu, 31 Dec 2009 20:43:39 +0000 + +gcl (2.6.7-49) unstable; urgency=low + + * Bug fix: "/bin/sh: line 6: /bin/gcl: Permission denied", thanks to + Nobuhiro Iwamatsu (Closes: #561554). + + -- Camm Maguire Wed, 30 Dec 2009 23:04:39 +0000 + +gcl (2.6.7-48) unstable; urgency=low + + * round to nearest in ratio to double + + -- Camm Maguire Wed, 16 Dec 2009 15:01:55 +0000 + +gcl (2.6.7-47) unstable; urgency=low + + * Bug fix: "configure: error: Need zlib for bfd linking", thanks to + Cyril Brulebois (Closes: #560761). + * Bug fix: "Disfunctional maintainer address", thanks to Joerg Jaspert + (Closes: #560752). + + -- Camm Maguire Mon, 14 Dec 2009 19:06:45 +0000 + +gcl (2.6.7-46) unstable; urgency=low + + * support newer binutils with output_bfd element + * Fix 64bit interrupt bug + * reader error fix + * Ensure plt entries are not blank + * plt table reading fix + * Bug fix: "FTBFS: current binutils static libs need -lz", thanks to + Daniel Schepler (Closes: #521929). + * Bug fix: "replacing libreadline5-dev build dependency with + libreadline-dev", thanks to Matthias Klose (Closes: #553761). + * Bug fix: "crash after ctrl-C", thanks to Miroslaw Kwasniak (Closes: + #519903). + * Bug fix: "FTBFS with binutils-gold", thanks to Peter Fritzsche + (Closes: #554418). -ldl added to bfd linker args + * Bug fix: "[INTL:es] Spanish debconf template translation for gcl", + thanks to Francisco Javier Cuadrado (Closes: #508728). + * Bug fix: "[INTL:it] Italian translation", thanks to Vincenzo + Campanella (Closes: #560364). + * gcc error/warning cleanups + * fix plt table awk + + -- Camm Maguire Fri, 11 Dec 2009 17:45:14 +0000 + +gcl (2.6.7-45) unstable; urgency=high + + * proper word order detection macro, fixes armel + + -- Camm Maguire Mon, 01 Sep 2008 13:48:16 +0000 + +gcl (2.6.7-44) unstable; urgency=high + + * backoff on arm opts + * more careful handling of GCL_GPROF_START + + -- Camm Maguire Sat, 23 Aug 2008 21:28:52 +0000 + +gcl (2.6.7-43) unstable; urgency=low + + * redo unrandomize.h to enable compilation under -O2 -- FIXME; Closes: 494153 + + -- Camm Maguire Wed, 20 Aug 2008 21:18:43 +0000 + +gcl (2.6.7-42) unstable; urgency=low + + * more div/rem symbols for alpha + + -- Camm Maguire Sun, 03 Aug 2008 11:18:51 +0000 + +gcl (2.6.7-41) unstable; urgency=low + + * more div/rem symbols for arm and hppa + + -- Camm Maguire Sat, 02 Aug 2008 00:36:07 +0000 + +gcl (2.6.7-40) unstable; urgency=low + + * default gcc with pic enabled on mips/mipsel + + -- Camm Maguire Fri, 01 Aug 2008 13:28:00 -0400 + +gcl (2.6.7-39) unstable; urgency=high + + * gcc 4.2 for mips/mipsel for now + * __divdi3 et. al. symbols for ia64 and arm + * clean some compiler warnings + + -- Camm Maguire Fri, 01 Aug 2008 12:53:07 -0400 + +gcl (2.6.7-38) unstable; urgency=low + + * No infinite unrandomization loops + + -- Camm Maguire Thu, 31 Jul 2008 15:18:37 -0400 + +gcl (2.6.7-37) unstable; urgency=low + + * Non-maintainer upload to fix pending l10n issues + * Debconf templates and debian/control reviewed by the debian-l10n- + english team as part of the Smith review project. Closes: #457025 + * [Debconf translation updates] + - Portuguese. Closes: #457576 + - Czech. Closes: #457677 + - French. Closes: #458120 + - Finnish. Closes: #458255 + - Galician. Closes: #458529 + - Vietnamese. Closes: #459008 + - Russian. Closes: #459308 + - Dutch. Closes: #459541 + - German. Closes: #459887 + * [Lintian] Correct FSF address in debian/copyright + * [Lintian] Remove extra whitespaces at the end of + debian/in.gcl-doc.doc-base.tk + * [Lintian] Correct section in doc-base documents from Apps/Programming + to Programming + * Accept NMU + * Bug fix: "[INTL:sv] po-debconf file for gcl", thanks to Martin Ågren + (Closes: #492241). + * Bug fix: "gcl: FTBFS [amd64]: cannot trap sbrk", thanks to Daniel + Schepler (Closes: #487435). Modified and applied personality handling + patch. + * Bug fix: "gcl: Builds broken package with gcc-4.3", thanks to Daniel + Schepler (Closes: #467474). Added sincos to plttest.c + + -- Camm Maguire Thu, 31 Jul 2008 15:18:15 -0400 + +gcl (2.6.7-36) unstable; urgency=low + + * statsysbfd in Debian, incoporating modules into libgcl.a for + compiler::link support + + -- Camm Maguire Fri, 30 Nov 2007 12:03:31 -0500 + +gcl (2.6.7-35) unstable; urgency=low + + * drop gcc-3.4 on arm, Closes: #440421 + * Depend on emacs22 | emacsen, Closes: #440190 + * debconf translations Closes: #410683, Closes: #419736, Closes: #423706, Closes: #441408 + + -- Camm Maguire Fri, 23 Nov 2007 10:25:23 -0500 + +gcl (2.6.7-34) unstable; urgency=low + + * add read-byte,read-sequence,write-byte,write-sequence support + * fix some float parsing inaccuracies + * support GNU_HASH sections, Closes: #426135 + * safety 2 for certain low level functions in gcl_listlib.lsp, CLoses: + #415266 + + -- Camm Maguire Wed, 4 Jul 2007 16:23:25 -0400 + +gcl (2.6.7-33) unstable; urgency=low + + * Fix leading underscore behavior of my_plt + * add sqrt to plttest.c + * disable-nls added to the binutils subconfigures to avoid msgfmt + dependency + * remove -lintl from powerpc-macosx.defs + * update to make-user-init from cvs head to support hol88, fix link on + mingw + * solaris-i386 support + * fix read-char-no-hang on mingw + * fast compile without wrap-literals + * sigaltstack support + * fix cerror + + -- Camm Maguire Wed, 16 May 2007 12:45:40 -0400 + +gcl (2.6.7-32) unstable; urgency=low + + * static function pointers for hppa + + -- Camm Maguire Sun, 29 Oct 2006 02:15:13 -0500 + +gcl (2.6.7-31) unstable; urgency=low + + * no C optimization on hppa, gcc 4.x on hppa + * update cs.po, Closes: #389211 + + -- Camm Maguire Fri, 27 Oct 2006 13:06:55 -0400 + +gcl (2.6.7-30) unstable; urgency=low + + * make sure *tmp-dir* is set + * makeinfo is optional + + -- Camm Maguire Wed, 25 Oct 2006 17:37:54 -0400 + +gcl (2.6.7-29) unstable; urgency=low + + * Fix build issues on hppa and m68k + + -- Camm Maguire Sat, 21 Oct 2006 15:10:41 -0400 + +gcl (2.6.7-28) unstable; urgency=low + + * si::gettimeofday function for HOL88 build;macosx fixes + + -- Camm Maguire Wed, 18 Oct 2006 13:21:26 -0400 + +gcl (2.6.7-27) unstable; urgency=low + + * unrestricted gcc for alpha + * more default stack space + + -- Camm Maguire Tue, 17 Oct 2006 16:33:43 -0400 + +gcl (2.6.7-26) unstable; urgency=low + + * Fix large float read bug in c1constant-value + + -- Camm Maguire Mon, 16 Oct 2006 12:41:03 -0400 + +gcl (2.6.7-25) unstable; urgency=low + + * build-dep on gcc3.4 where appropriate + * Newer standards + + -- Camm Maguire Thu, 12 Oct 2006 09:37:08 -0400 + +gcl (2.6.7-24) unstable; urgency=low + + * build-dep on gcc3.4 where appropriate + * Newer standards + + -- Camm Maguire Thu, 12 Oct 2006 02:22:04 -0400 + +gcl (2.6.7-23) unstable; urgency=low + + * backoff to gcc-3.4 on alpha,arm,hppa, and m68k + + -- Camm Maguire Wed, 11 Oct 2006 10:16:59 -0400 + +gcl (2.6.7-22) unstable; urgency=low + + * HAVE_SYS_SOCKIO_H for solaris + * autolocbfd for solaris + * no -Wall when no gcc + * no -fomit-frame-pointer on m68k + * no profiling on mips + * $(AWK) instead of awk + * si::stat function + * fix 'the boolean type coersion error + * no varargs on cygwin + * while eval macro + * gensym counter fixes + * xgcl updates + + + -- Camm Maguire Fri, 15 Sep 2006 13:48:28 -0400 + +gcl (2.6.7-21) unstable; urgency=low + + * Fix socket write error + + -- Camm Maguire Wed, 6 Sep 2006 09:59:50 -0400 + +gcl (2.6.7-20) unstable; urgency=low + + * fix ia64 build + + -- Camm Maguire Thu, 31 Aug 2006 15:14:18 -0400 + +gcl (2.6.7-19) unstable; urgency=low + + * xgcl upgrade + * parse_number from cvs head with *read-base* fixes + * fix object_to_string + * install xgcl-2/sysdef.lisp + * fix info dir and emacs site lisp dir installation + * New xgcl readme + * Remove bashism from debian/rules, Closes: #376806, Closes: #385176. + * Fix dwdoc doc-base error, Closes: #385126 + + -- Camm Maguire Wed, 30 Aug 2006 12:13:46 -0400 + +gcl (2.6.7-18) unstable; urgency=low + + * remove emacs build dependency + * synch xgcl-2 with Novak edits + * fix build errors + * Remove power of two limit to MAXPAGE;fix X lib paths + * configure cleanup + * delete-file works on directories;build xgcl the old way;latest xgcl + from Gordon Novak + + -- Camm Maguire Wed, 23 Aug 2006 14:19:51 -0400 + +gcl (2.6.7-17) unstable; urgency=low + + * Bug fix: "gcl: [INTL:sv] Swedish debconf templates translation", + thanks to Daniel Nylander (Closes: #343695). + * Bug fix: "gcl: French debconf templates translation update", thanks to + Sylvain Archenault (Closes: #344629). + * clean xgcl-2/gmon.out + * cleanup latest gcc type-punning warnings + * defentry C proclamations and xgcl cleanup + + -- Camm Maguire Mon, 26 Jun 2006 16:45:09 +0000 + +gcl (2.6.7-16) unstable; urgency=high + + * Add missing build dependencies, omit html generation to avoid non-free + dependencies, CLoses: #372574. + + -- Camm Maguire Mon, 19 Jun 2006 14:05:59 +0000 + +gcl (2.6.7-15) unstable; urgency=low + + * Use internal gettext for bfd + * Restore xgcl2 + * Set compiler::*tmp-dir* at runtime + * report tmp-dir setting with system-banner to enable clean -eval - + batch operation; fix listen on socket streams; use (abs (getpid)) in + tmp names for Windows + * fix configure unbalanced quotes + * support for bignums in nth et.al. + * Fix branch cut of atanh + * Fix typep on simple-arrays + * prevent nested free errors + * revert atanh branch cut change + * Fix function documentation wrapping by compile + * cond evalmacro from cvs head + * Fix fixnum declarations in new smallnthcdr/bignthcdr + * fix simple-array typep + * updates for lsp/sys-proclaim + * xgcl integration + + -- Camm Maguire Fri, 9 Jun 2006 17:52:22 +0000 + +gcl (2.6.7-14) unstable; urgency=low + + * Add mount declaration to plt.c + + -- Camm Maguire Sun, 18 Dec 2005 12:56:51 +0000 + +gcl (2.6.7-13) unstable; urgency=low + + * Add feof to plttest.c for macosx + * plt related fixes for macosx + * fix configure + * Cleanup LEADING_UNDERSCORE case in plt.c et.al for macosx et.al. + * pass devices if present in compiler::get-temp-dir, fix disassemble + for new gazonk name pattern + + -- Camm Maguire Sat, 17 Dec 2005 15:22:40 +0000 + +gcl (2.6.7-12) unstable; urgency=low + + * Fix read-char-no-hang + * Strip emacs warnings when finding site-lisp directory + * mach-o update for latest binutils + * Latext bfd mach-o support from Aurelien + * revert to locbfd default on ppc-macosx + * More ppc macosx fixes from Aurelien + * revert a few macosx changes + * default to void * prototype on my_sbrk for latest macosx pending + Aureliens #ifdef + * Fix plt.h parsing on macosx + * Fix leading_underscore detection on mac + * macosx name mangling fixes + * multi-process safe gazonk names in compiler::*tmp-dir* + * Add underscore-mangled setjmp calls to plttest.c for macosx + * Fix POTFILES.in, Closes: #336207. + * Update templates, Closes: #324636 + * New French and Swedish translations, Closes: #333654, Closes: #336757. + + -- Camm Maguire Wed, 14 Dec 2005 18:52:49 +0000 + +gcl (2.6.7-11) unstable; urgency=low + + * Remove gcc-3.3 for arm in debian/rules + * make default maxpage depend on SIZEOF_LONG and PAGEWIDTH in a sane + fashion + + -- Camm Maguire Thu, 20 Oct 2005 00:08:37 +0000 + +gcl (2.6.7-10) unstable; urgency=low + + * Fix long-call gcc configure bug for ppc, add fdollars in + identifiers on arm + * remove gcc restrictions on arm + * revert 64bit coersion (gmp_big.c, maybe_replace_big) and replace with + code in siLnani (main.c) to get addresses from bignums. 2.7.0 will + have 64bit fixnums on 64bit machines, but this should not be + backported to 2.6.x + + -- Camm Maguire Wed, 12 Oct 2005 23:11:12 +0000 + +gcl (2.6.7-9) unstable; urgency=low + + * 64bit fixnum fasd data format fix from cvs head + + -- Camm Maguire Wed, 5 Oct 2005 18:49:50 +0000 + +gcl (2.6.7-8) unstable; urgency=low + + * Fix 64bit fixnum coersion bug using code from cvs HEAD + + -- Camm Maguire Fri, 30 Sep 2005 22:14:38 +0000 + +gcl (2.6.7-7) unstable; urgency=high + + * Scan .o file for init name when using dlopen + * Set init name using .o file instead of source file by default + * wrap-literals function from cvs head to allow optimizations using + compile or compile-file + * ADDR_NO_RANDOMIZE fix + + -- Camm Maguire Thu, 29 Sep 2005 17:50:56 +0000 + +gcl (2.6.7-6) unstable; urgency=high + + * Build bfd snapshot locally, Closes: #318681 + + -- Camm Maguire Tue, 20 Sep 2005 17:53:17 +0000 + +gcl (2.6.7-5) unstable; urgency=high + + * gcc-3.3 for arm + + -- Camm Maguire Thu, 15 Sep 2005 20:33:00 +0000 + +gcl (2.6.7-4) unstable; urgency=high + + * gcc 3.4 on arm to work around reserved '$' identifiers. + * gcl: French translation update + * French translation added, Closes: #325214 + * Czech translation added, Closes: #325869 + + -- Camm Maguire Thu, 15 Sep 2005 13:45:11 +0000 + +gcl (2.6.7-3) unstable; urgency=low + + * static wraper for compiled_regexp for ia64 + + -- Camm Maguire Sat, 10 Sep 2005 11:26:37 +0000 + +gcl (2.6.7-2) unstable; urgency=high + + * rebuild against libgmp3c2, Closes: #323765 + * 2.6.7 fixes all gcc 4.0 issues. Closes: #323979 + + -- Camm Maguire Wed, 24 Aug 2005 00:44:48 +0000 + +gcl (2.6.7-1) unstable; urgency=high + + * Fix (listen) with readline on + * fix control-d with readline + * libreadline5 support for Debian + * Support for pre-compiled regexps and new texinfo format + * Reenable run-process + * Push function 'accept into lisp, use select for 'listen on socket + streams + * New Upstream release version + * Native-reloc feature + * Add daemon capabilities to server sockets, document socket and + accept + * Some gcl-tk fixes + * Update wrapt-literals strategy to be consistent with CVS head -- + wrap evreything but symbols and integers, don't wrap when keeping + the gazonk files for linking in different images, this is really a + compile-file operation + * gcltk demo cleanups + * Probe-file, open_stream, and the like fail on directories + * Resolve symlinks in truename + * Place prototypes for defcfun in header files + * Support for unique init names for compiler::link and the like + * libreadline5 for Debian + * remove _o from init-names + * gcc-4.0 fixups + * Bug fix: "gcl: depends on binutils-dev <<= 2.1.5-999), so + uninstallable in unstable", thanks to Steve Langasek (Closes: + #318681). Rebuild with new release to autocompute this dep + * Bug fix: "gcl: Please switch to po-debconf", thanks to Lucas Wall + (Closes: #295930). Apply po-debconf patch + * Newer standards + + -- Camm Maguire Thu, 11 Aug 2005 15:00:26 +0000 + +gcl (2.6.6-1) unstable; urgency=high + + * New upstream release + * Allow .data section to be first in executable, as on solaris. Also + allow for new bfd section size semantics + * Don't try to write map file when not using GNU ld. Also allow + compile-file to process pathnames with whitespace on Windows + * Fix corner case fixnum arithmetic on 64bit machines + * Rework gmp_wrappers semantics for older gcc + * Explicitly mprotect loaded code pages PROT_EXEC on x86 Linux, as FC3 + now requires it. + * lisp-implementation-version is GCL + * Reader extension patch allowing for foo::(bar foobar) semantics + * a shell script variable fix in "unixport/makefile" for MSYS + * __MINGW32__ malloc initialisation fix in "o/alloc.c" + * Windows file/directory fixes in "o/unixfsys.c" + * MinGW32 -march in configure - removes deprecation warnings + * MinGW32 directory fix - "o/mingfile.c". + * Allow for sysconf to determine clock granularity at compile time to + fix time errors on the Itanium + * Disable SGC on macosx until the sgc/save problem can be fixed. + * Fix fixnum print bug on 64bit + * Fix nil types in room report + * 64bit fixes to fixnum_add and fixnum_sub + * Fix Mac SGC/save bug, at least in part + + -- Camm Maguire Sun, 16 Jan 2005 02:28:50 +0000 + +gcl (2.6.5-1) unstable; urgency=high + + * New gmp_wrappers.{c,h} files that prevent all GBC within gmp, + obviating the need for gmp patches and a local gmp configure. FIXME + -- extend to all gmp functions in a systematic way, and write header + information for future use in the compiler, making sure that plt.c + carries the needed gmp symbols at this point + * Build support for gmp_wrappers + * Support for gmp_wrappers in alloc_relblock/alloc_contblock;Support + for GCL_GPROF_START define in gprof functions + * dynsysgmp on by default; configure backs off to local gmp configure + and build automatically if needed either because gmp not present or + patched symbols are needed; autodetect and set the _start symbol + when using gprof + * Fix (setf (get ...) ...) return bug when interpreted + * Fix overwrite end of sgc_type_map bug + * Versioned depends on binutils-dev manually installed by Debian build + process + * New upstream release + * Proper binutils dependency for Debian + * head -1l -> head -n 1 for freebsd + * Cleanup gmp_wrapper code, check for in-place calls as write in one + step is not guaranteed in gmp according to its developers + * Rebuild against binutils 2.15, Closes: #266253, Closes: #263983 + + -- Camm Maguire Tue, 17 Aug 2004 18:22:27 +0000 + +gcl (2.6.4-1) unstable; urgency=high + + * New upstream release + * Make disassemble work when original system directory is gone + * New debian/support files for debconf image default selection support + * More descriptive compiled C function names for use in gprof when + profiling is compiled in + * Compiler fix for proclaimed vararg functions + * Allow sharp numbers to be bignums + * lintian fix in string-match + * Prototype for alloca for lint + * Improve gprof support + * Improve sgc page allocation which optimize-maximum-pages is in + effect and the hole is overrun + * Build a profiling set of images as well for Debian, toggle between + all four by default via debconf + * reset-sys-paths lisp function for moving image installation + directories, show profiling support in banner if present + * Fix typo in sys docs + * reset sys paths on installation + + -- Camm Maguire Thu, 5 Aug 2004 22:48:56 +0000 + +gcl (2.6.3-1) unstable; urgency=high + + * Correctly parse gcc version strings in gmp3 subconfigure on arm + * Fix variable capture error in dotimes macro + * Better sed separator for LI-CC in unixport/makefile + * Fix segfault in string-match + * vs_top=sup -> (reset-top) where possible in compiler. FIXME: a few + items of a different form which need to set *sup-used* too. + * Correct room report to show proper percentages when sgc is on + * Read in RELOC environment variable if set as default in debian/rules + * Remove local bfd libraries from libs variables as their objects are + incorporated into libgcl and as the source directory may not be + available at runtime + * Remove pcl/pcl_gazonk*lsp build-generated files from source + + -- Camm Maguire Thu, 15 Jul 2004 14:26:44 -0400 + +gcl (2.6.2-3) unstable; urgency=low + + * Fix value stack leak in rare compiled call sequence + + -- Camm Maguire Tue, 13 Jul 2004 10:17:02 -0400 + +gcl (2.6.2-2) unstable; urgency=low + + * New upstream point release + + -- Camm Maguire Tue, 13 Jul 2004 10:08:53 -0400 + +gcl (2.6.2-1) unstable; urgency=low + + * gcc-3.4 support + * Proper isnormal default courtesy of Magnus Henoch + * gclclean makefile target and other small makefile changes + * Proper check for C stack array body address in gbc.c and sgbc.c + * New upstream release + * acconfig.h update for isnormal default + * Fix bug in setting elements (si::aset) of 0 rank arrays uncovered by + the random tester + * No -fomit-frame-pointer on mingw + * Backport minimal ansi-test patches from HEAD to enable running of + the random tester + * installed tcl/tk patch for mingw + * Fix banner license detection code in lsp/gcl_mislib.lsp as + 8features* entries are now keywords + * o/makefile changes to work around trailing slash -I arguments gcc + bug on mingw + * Patch to mingwin.c:fix_filename to close long standing 'maxima + ignore-errors filename corruption' bug on mingw + * Check for too large rank supplied to make-array1 + * Fix potential stack overwrite bug in quick_call_sfun/eval.c + * Add -mprferred-stack-boundary=8 on amd64, as constant integers used + in a call must be retrievable with va_arg(,fixnum) + * Revert preferred-stack-boundary option on amd64 as it does not play + well with external libraries, also eliminate -m64 to allow for user + settings. Cast fixnum constant C arguments in gcl_cmploc.lsp + explicitly to (long) to ensure they can be extracted via + va_arg(,fixnum) + * reenable SA_SIGINFO on amd64 to restore SGC there + * Include elf.h in FreeBSD.h + * Allow for elf_abi.h in FreeBSD.h + * Add README.openbsd file + * readme.mingw updates + * solaris.h updates for custreloc option + * Close possibility of malloc failure due to intervening gbc arising + from the misordering of allocation calls + * C_GC_OFFSET is 2 on m68k-linux + * Add release notes, remove gcl document presumably based on dpANS for + now + * Fixup bad extern declaration of signals_handled in usig.c + + -- Camm Maguire Fri, 25 Jun 2004 22:43:52 +0000 + +gcl (2.6.1-39) unstable; urgency=high + + * Fix segfault in referencing (sgc_)type_map out of bounds which can + occurr when C stack is below heap, as on alpha. + * Cleanup compiler warnings on bcmp.c bzero.c and bcopy.c + * Clean up compiler warning in file.d + * Ensure set TLDFLAGS are used in finding DBEGIN in copnfigure.in, for + OpenBSD + + -- Camm Maguire Fri, 7 May 2004 21:50:03 +0000 + +gcl (2.6.1-38) unstable; urgency=low + + * Make *features* entries keywords -- add canonical host cpu and + kernel-system to *features*, disable h files specific + ADDITIONAL_FEATURES macro in main.c + * Fix merge-pathanames bug in concatenating default and supplied + directory lists + * Minor pathname and *features* fixes + * Fix recently introduced configure.in syntax bug + * Minor patches to support big gcl images -- all page integers must be + long ints, need stack space limits that scale with MAXPAGES at least + to allow free_map stack array in sgc_start. FIXME -- right now can + handle situations where page numbers are ints, but npage*PAGESIZE is + a long, need to handle npage >MAX_INT later. This is to support the + 'billion cons element acl2 image' requested by a gcl user + * Revert winnt features and debugging aids in configure.in + * OpenBSD support, gcc warning cleanups for long page integers + + -- Camm Maguire Mon, 3 May 2004 21:34:57 +0000 + +gcl (2.6.1-37) unstable; urgency=high + + * mprotect pages PROT_EXEC as CLEAR_CACHE step on amd64-linux + * Prevent recursive malloc calls for OpenBSD error reporting + * Push dummy 0 time for child runtime on windows to be compatible with + other platforms for now + * Make sure pages are mprotected PROT_EXEC for amd64 support + + -- Camm Maguire Tue, 13 Apr 2004 21:00:22 +0000 + +gcl (2.6.1-36) unstable; urgency=low + + * Improve optimize-maximum-pages algorithm + + -- Camm Maguire Tue, 6 Apr 2004 03:23:40 +0000 + +gcl (2.6.1-35) unstable; urgency=low + + * Fix sigcontext autodetection on sparc + + -- Camm Maguire Sun, 4 Apr 2004 19:26:48 +0000 + +gcl (2.6.1-34) unstable; urgency=low + + * Fix GNU_LD autodetection in configure.in + * Eliminate C_INCLUDE_PATH from shell script wrapper + * Use lisp rather than 'system touch' to make empty map file in + compiler::link + * fix small bug when info is passed bad second argument + * Don't try to open map file if doesn't stat (macosx) + * Add earlier forgotten branch patch to sfaslbfd.c for macosx + * Backport new eval-when keyword support from 2.7 to run random tester + * Perhormance improvement to gcl_seqlib.lsp -- no inner loop over + bignums + * Proper contblock/relblock determination when expanding string + streams + * Proper string type determination for *link-array* + * .ini files depend on plt.h + * plttest.c cannot depend on include.h + * Address longstanding FIXmE in gensym, so that two strings are not + allocated for each gensym + * Fix rare infinite loop bug in array.c + * Import si::info into 'user + * , -> # as sed separator + * Minro warning removals and fixups + * Binary searches through ordered arrays of referred and changed + variables for dramatic compiler performance improvement in the large + case -- support declarations and thereby optimizations of the form + (declare ((vector t) foo)), etc. + * Better 'time macro + * rebuild pcl_gaz* files + * cleanup room report and give more space to modern large heaps + * room report formatting + * Properly gensymmed time macro + * Allow for white space chars in compiled filenames + * Autodetect and work around sbrk randomization, e.g. on Fedora 1 + * Probe for sbrk before probing for randomized sbrk + * Openbsd changes -- maximize data seg resource if possible, avoid + mallocing error message when allocation routines fails + * Fix sigcontext configure tests + * Rename loop-finish -> sloop-finish in sloop package so that sloop + and ansi loop can be used simultaneously + * Handle arguments which are zero in LCM + * Fix typo in configure.in + * Improved dotimes macro which avoids unnecessary fixnum garbage + generation + * Backport of ignorable declaration keyword for new dotimes macro + * si::*OPTIMIZE-MAXIMUM-PAGES* support + * rebuild pcl generated lisp files + + -- Camm Maguire Sat, 3 Apr 2004 19:27:18 +0000 + +gcl (2.6.1-33) unstable; urgency=low + + * Remove extraneous symbols from plt.h, autodetect and correct for + leading underscore in object symbols + * complete readline version detection commit + * Backport support for new eval-when keywords + * Autodetect GNU ld and add -Wl,-Map only when appropriate + + -- Camm Maguire Wed, 10 Mar 2004 22:51:44 +0000 + +gcl (2.6.1-32) unstable; urgency=low + + * Try to automatically determine the form used for the explicitly + compiled in external function addresses in plt.c + * No need to explicitly write cr-lf on windows + * Autodetection of machine on FreeBSD + * Updated defs and h files for FreeBSD courtesy of Mark Murray + * Minor ifdefs needed for FreeBSD + * Refer to exported non-static C stub of fSmake_vector1 in plt.c + (needed on ia64) + * Readline 4.1/4.3 configure magic + + -- Camm Maguire Tue, 9 Mar 2004 01:58:43 +0000 + +gcl (2.6.1-31) unstable; urgency=low + + * Adjustments to vs_top reset logic to clear (hopefully last) + remaining bug found by the random-tester + * Allow args-info-referred-vars to match replaced vars, clearing bug + report submitted by Matt Kauffman + * Rework plt code yet again to be compatible with compiler::link for + axiom, and mingw32 + + -- Camm Maguire Mon, 8 Mar 2004 12:16:46 +0000 + +gcl (2.6.1-30) unstable; urgency=low + + * Fix rsym generated symbol tables for 64 bit platforms + * Make sure 'unwind' in frame.c does nt go below frs_org + * Do not define symbols with no value, either in bfd/rsym, or in + plt.c. Generates a clear and explicit error of an undefined symbol + when we've missed an address + * Define the external symbols known to be written at present in plt.c + * fix some more compiler errors found by the random tester -- all + related to proper unwinding of temporary reductions of vs_top from + te local supremum + + -- Camm Maguire Sat, 6 Mar 2004 02:05:59 +0000 + +gcl (2.6.1-29) unstable; urgency=low + + * Remove implicit dependency on gawk, optimize plt.c a little + + -- Camm Maguire Wed, 3 Mar 2004 16:08:30 +0000 + +gcl (2.6.1-28) unstable; urgency=low + + * make sure bfd fasload initializes dum.sm.sm_object1 for + read_fasl_vector + * When a tagbody contains ccb reference tags, and hence i itself + marked ccb, mark all the clb tags therein ccb too, as the tagbody + environment will be consed in c2tagbody-ccb. FIXME -- review this + logic carefully + * fix typoe in o/sfaslbfd.c + * Add code to unwind redefinitions of the stack supremum in c2expr-top + (used in c2multiple-value-prog1 and c2multiple-value-call in + evaluating arguments) on non-local exit + * Use new temporarry variables holding lisp stack supremum for lint + * Eliminate extraneous warning message when allocating fewer pages + than already allocated + * Rework internal plt symbol address capture + * Cleanup sfaslelf compiler warning + + -- Camm Maguire Wed, 3 Mar 2004 00:27:08 +0000 + +gcl (2.6.1-27) unstable; urgency=low + + * Modify default banner slightly + * Homebrew plt-like mechanism for ensuring that valid internal + addresses exist to which undefined symbols in compiled lisp objects + referring to external shared libraries can be relocated + * Make configure demand gettext when choosing --enable-locbfd + * Make sure references to ldb1, a stub conventionally optimized away, + can be resonled when optimization is turned off + * completion_matches -> rl_completion_matches in gcl_readline.d, + which is what is exported in the headers + + -- Camm Maguire Fri, 27 Feb 2004 23:50:49 +0000 + +gcl (2.6.1-26) unstable; urgency=low + + * Rework compiler::*ld-libs*, compiler::link, and unixport/makefile to + accomodate mingw need for firstfile.o and lastfile.o + * Remove incompatible -fomit-frame-pointer when compiling with -pg + profiling + * Load sys-proclaim.lisp files forimproved linking and smaller object + size across the board, install same for use with compiler::link + * Use pathnames instead of strings in compiler::link, also in image + init files, for Windows + * small mod to unixport/makefile re filtering of firstfile and + lastfile + * Backport zero divisor error cnditions from HEAD for + floor,ceiling,truncate + * Default to debug mode on hppa to work around gcc compiler + optimization bugs + * Add missing m4 and automake files in binutils directory to enable + automake and autoconf here + * Add mach-o specific files from cvs head to local bfd tree + * Add bfd/po makefiles + * Macosx defaults in configure.in + * bfd make and configure file changes to handle mach-o backend + * *gcl-version* -> *gcl-minor-version*,*gcl-extra-version* + * Support for more informative banner reading features list + * Support for both sigbus and sigsegv in sgbc.c as is customary in .h + files + * mach-o compatible changes in sfaslbfd.c + * Support for new debugging section names in sfaslelf.c + * powerpc-macosx h and defs files from cvs head + + -- Camm Maguire Wed, 25 Feb 2004 23:08:59 +0000 + +gcl (2.6.1-25) unstable; urgency=low + + * rl_putc_em a carriage return after invoking readline to ensure the + prompt in rl_putc_em_line is cleared. + * use standard sgc fault recovery element for hppa as recommended by + hppa kernel experts + * Store banner in si::*system-banner* for possible modification + in compatibly licensed programs + * exit with -1 when standard in ends in lisp debug mode + * Backport macosx files from cvs HEAD + * Document system return codes + + -- Camm Maguire Fri, 13 Feb 2004 20:44:54 +0000 + +gcl (2.6.1-24) unstable; urgency=low + + * Revert unixport/makefile link order fix for windows, breaks + compiler::link, find another way + * runtime SGC fault recovery test + * Protect read/fread in case SGC is enabled with safe (restartable) + versions + * SGC on for arm and hppa + * remove fast-link workaround now fixed for windows + * Backport HEAD makefile changes to clean .{c,h,data} files and + new_decl.h, remove said from repository (generated files) + + -- Camm Maguire Thu, 12 Feb 2004 05:56:29 +0000 + +gcl (2.6.1-23) unstable; urgency=low + + * Remove calls to init-readline with new automatic readline setup + + -- Camm Maguire Tue, 27 Jan 2004 20:27:20 +0000 + +gcl (2.6.1-22) unstable; urgency=low + + * Build depend on emacs21 | emacsen + + -- Camm Maguire Fri, 23 Jan 2004 22:01:15 +0000 + +gcl (2.6.1-21) unstable; urgency=low + + * Automatic readline initialization + * Add watch file + * Prevent circular error loops + * Prevent automatic optimization added to CFLAGS by autoconf + * Rework documentation installation in and outside of Debian + * Support user deined predicates at an elementary level in the form + '(satisfies foop) in gcl_predlib.lsp + * Install binary gcd algorithm for ~10% performance increase + * Rescale some default allocation parameters -- bignum allocation by + relblocks by default, default growth parameters are 1 (min), + 0.1*MAXPAGE (max), 0.5 (increase), 0.3 (percent free), holepage is + 4*MAXPAGE/1024, INIT_HOLEPAGE, INIT_NRBPAGE and RB_GETA scale + accordingly + * Clean windows/sysdir.bat + * Check for zero args in new gcd code + * Default hole is maxpages/10, holesize configure option added + * Fix syntax errors in older reloaction code: sfaslelf.c + + -- Camm Maguire Fri, 16 Jan 2004 16:57:50 +0000 + +gcl (2.6.1-20) unstable; urgency=low + + * Fix gcl-doc doc-base files + + -- Camm Maguire Tue, 30 Dec 2003 22:30:39 +0000 + +gcl (2.6.1-19) unstable; urgency=low + + * Fix bug in compiler::c2labels in which *ccb-vs* was missing a ocal + rebind + * Remove duplicate tags from compiled C switch statements + * Minor merges for DARWIN support + * Path to configure to make --enable-emacsdir work + * Check for readline/readline.h header before configuring for readline + * Improve system bfd library location detection + * Make sure external gmp lib is compatible via __GNU_MP_VERSION, else + backoff to local gmp build; prepend externally defined CFLAGS into + output CFLAGS, FINAL_CFLAGS, and NIFLAGS + * Remove --enable-gmp configure option; gmp is required for GCL + * Use --enable-emacsdir in debian/rules, make sure --enable-emacsdir + and --enable-infodir work when arg contains ${prefix} + * Fix typo in chap-6.texi + * Make sure to export SGC define from config.h to cmpinclude.h -- Now + that we used optimized structures in the compiler, we need at least + the definition of SGC_TOUCH there to prevent GBC errors. FIXME -- + handle header dependencies more robustly. Thanks to Robert Boyer + for the report + * Improve SGC define extraction for cmpinclude.h + * Fix variable reference errors which were occurring for compiled + local functions defined within closure-generating or other + environment stack pushing functions when safety is set to 3 (thanks + Paul Dietz for the report.). When constructing local functions and + closures within a 'mother' function, *ccb-vs* will hold the number + of closure environments stacked at the point of each closure + creation or call to a local function. This value is stored as the + cadr of a list pushed onto *local-funs*, and is read when writing + out the C code for the local function or closure, where it is used + to initialize *ccb-vs* and *initial-ccb-vs* for subsequent + processing. The latter is used as the reference point when + addressing variables in wt-ccb-vs, as the former could be still + further incremented within the closure or local function itself. + Local functions as opposed to closures do not increment *ccb-vs* and + do not push the environment. When a local function is defined + within a closure-generating flet/labels, or a tagbody or block which + pushes the environment, the value of *ccb-vs* written to the list + corresponding to the local function can be erroneously incremented + beyond the *initial-ccb-vs* value established before any environment + pushing operations were processed. It is this latter value which is + appropriate for use in wt-ccb-vs, as the local functions, unlike the + closures, receive an environment level with the mother generating + function. We therefore push *initial-ccb-vs* onto the end the list + pushed onto *local-funs* only when defining a local function, and use + it to initialize an added optional variable initialize-ccb-vs in + t3local-fun and t3local-dcfun, which default to the original ccb-vs. + We then bind *initial-ccb-vs* to this new optional parameter instead + of the former *ccb-vs, which was only appropriate for closures. + * Put in rudimentary logic for the selection of stack vs. heap storage + for bignums depending on the frame context. FIXME, this logic is + too conservative at present. SETQ_II and SETQ_IO take an additional + parameter which is malloc when *unwind-exit* is bound and contains + 'frame and alloca otherwise. New macro bignum-expansion-storage. + FIXME, ensure that IDECL does not need similar modification. + * Cleanup a few compiler warnings in the compiler + * Cleanup compiler warning in alloc.c + * Eliminate unneeded transformatio of contniguous pages to other pages + on save-system. + * malloc -> gcl_gmp_alloc in recent setjmp frame protected bignum + allocation + * Add -Wa,--execstack if on an exec-shield enabled system, can be + explicitly added otherwise by setting the CFLAGS variable before the + configure step + * Better execstack flag handling in configure + * Allow for commas in CFLAGS in sed command writing *cc* + * Preliminary gprof profiling support + * Rework html documentation generation and installation, Closes: + #221774 + * Remove parentheses from setf class-name info node in chap-7.texi + + -- Camm Maguire Tue, 30 Dec 2003 16:26:45 +0000 + +gcl (2.6.1-18) unstable; urgency=low + + * Portability patches to makefiles to support non-GNU grep (no -q), + and non-bash sh, C_INCLUDE_PATH=...;export C_INCLUDE_PATH + * copy the global *info* parameter in c1flet and c1labels to prevent + accumulation of old data -- FIXME -- make sure there are no other + copies required, and eventually replace this global parameter with + local variables + * Turn on some optimization on hppa, -O only + * Make all C defined functions installed into lisp static functions to + work around dynamic function descriptors on ia64, Closes: #217484, + Closes: #204789, (STATIC_FUNCTION_POINTERS define in config.h) + + -- Camm Maguire Thu, 6 Nov 2003 15:40:25 +0000 + +gcl (2.6.1-17) unstable; urgency=low + + * Repair weak symbol addition to the bfd symbol table in sfasli.c + * Be more thorough about adding fun-info to call-local info in + gcl_cmpflet.lsp, accompanying simplifications in gcl_cmpeval.lsp + (call-global lists have info updated by args already in (c1args args + info)), small changes in add-info in gcl_cmpinline.lsp, FIXME -- + study rational for *info* special variable in certain places as + opposed to more common copy-info + + -- Camm Maguire Thu, 30 Oct 2003 20:03:22 -0500 + +gcl (2.6.1-16) unstable; urgency=low + + * Fix sh syntax in debian/gcl.sh + * init_or_load1 -> gcl_init_or_load1 in xgcl-2/sysinit.lsp + * Load weak symbols as well as undefined symbols in + bfd_build_symbol_table, for the purposes of the static build + possibility + * Map t and nil stream indicators properly in optimized compiled + references to read_char1 and read_byte1 (in read.d) + + -- Camm Maguire Thu, 23 Oct 2003 16:43:15 +0000 + +gcl (2.6.1-15) unstable; urgency=low + + * Remove imod/ifloor functions in cmpaux.c and directly inline their + fixed equivalents in gcl_cmpopt.lsp + + -- Camm Maguire Mon, 13 Oct 2003 15:04:24 +0000 + +gcl (2.6.1-14) unstable; urgency=low + + * generate less garbage in add-info (gcl_cmpinline.lsp), enabling + maxima compile to complete in a finite time :-) + + -- Camm Maguire Fri, 10 Oct 2003 22:14:04 +0000 + +gcl (2.6.1-13) unstable; urgency=low + + * Fix compiler optimization bug in gcl_cmpopt.lsp -- missing parens + around inliner for max and min + * collect info structures for local functions in flet and labels + processing (gcl_cmpflet.lsp), and pass upwards to call-local and + call-global (gcl_cmpeval.lsp) to fix certain inlining bugs in via + more proper operation of args-info-changed-vars (gcl_cmpinline.lsp, + inline-args, gcl_cmplet.lsp, c2let) + * Fix an obviou int overflow in ifloor (o/cmpaux.c), handle more + proper fixnum/integer determination from declarations later + + -- Camm Maguire Fri, 10 Oct 2003 02:34:11 +0000 + +gcl (2.6.1-12) unstable; urgency=low + + * Restore mpz_to_mpz{1} in gmp_big.c, can be written by compiler + * tk8.4 patches + * Prevent destructive modification of bignum arguments in log_op/mp_op + in gmp_big.c + * Make sure to push stack variables onto newly allocated C variable + when inlining args and args cause side effects, in inline-args, + gcl_cmpinline.lsp + * Fix bug related to gcc-3.3 fixes in set_exponent in num_co.c + * Remove pcl_methods.c patch. as is apparently no longer needed, TODO + -- make sure VOL modifier is inserted where needed to prevent + longjmp clobbers + + -- Camm Maguire Thu, 2 Oct 2003 14:26:43 +0000 + +gcl (2.6.1-11) unstable; urgency=low + + * Add compilation step of compiling all lsp and cmpnew .lsp files from + an interpreted only saved_pre_gcl before the creation of saved_gcl - + - this enables us to use full optimization on these files while + getting the STREF constants right on 32bit and 64bit + * remove 'attic' from comment in gcl_loop.lsp + * configure changes for sizeof(struct contblock) detection + + -- Camm Maguire Wed, 24 Sep 2003 16:09:44 +0000 + +gcl (2.6.1-10) unstable; urgency=low + + * Mac OSX GET_FULL_PATH_SELF + * Preliminary subtypep checking for 'satisfies + * preliminary 'satisfies support in subtypep, more predicate type + pairs and reverse checking + * small compiler change to remove unused C variables from optimized + compiled macros + * Optional compiler init file is called gcl_cmpinit + * fasdmacros.lsp -> gcl_fasdmacros.lsp + * All cmpinit.lsp files named gcl_cmpinit.lsp; allow full lisp + optimization in all directories + * collectfn -> gcl_collectfn in lsp/gcl_auto.lsp + * collectfn -> gcl_collectfn in cmpnew/gcl_make-fn.lsp + * Make sure makefiles can generate sys-proclaim.lsp, regenerate these + files and recompile from lsp + * Rebuild with opts enabled + * Iterate sys-proclaim/rebuild generation once more + * Iterate sys-proclaim/rebuild for pcl and clcs + + -- Camm Maguire Tue, 23 Sep 2003 19:33:27 +0000 + +gcl (2.6.1-9) unstable; urgency=low + + * Close streams in fasldlsym.c + + -- Camm Maguire Tue, 16 Sep 2003 14:57:20 +0000 + +gcl (2.6.1-8) unstable; urgency=low + + * Add processor flag variable to flags in configure.in + * Autoadd full path to kcl_self to enable save-system when user moves + executable and calls without script wrapper + * Add special variables si::*collect-binary-modules* and si::*binary- + modules* as a facility for discovering the list of fasloaded objects + preceding a save-system is required for a subsequent compiler::link + * Add collectfn.lsp to distro + * Rename some files and init_ functions to eliminate namespace + conflicts when building images with compiler::link + * Enable compressed info reading + * Make sure no opt flags are set when enable debug is specified + * Use NIFlAGS to compile new_init with lower opts on ppc to work + around gcc bug, restore full opts to other files + + -- Camm Maguire Sun, 14 Sep 2003 02:18:28 +0000 + +gcl (2.6.1-7) unstable; urgency=low + + * Fix permissions bug in temporary gzipped file handling + * Propagate control changes correctly with package extension + * Newer standards + + -- Camm Maguire Tue, 9 Sep 2003 17:06:56 +0000 + +gcl (2.6.1-6) unstable; urgency=low + + * Remove build-dependency on autoconf as a temporary work around to + Debian autoconf's dependency bug on emacsen-common + + -- Camm Maguire Tue, 9 Sep 2003 15:29:06 +0000 + +gcl (2.6.1-5) unstable; urgency=low + + * Redefine temporary files in elisp/makefile + + -- Camm Maguire Mon, 8 Sep 2003 21:49:09 +0000 + +gcl (2.6.1-4) unstable; urgency=low + + * Fix to sfasli.c to avoid defining symbols in other than *UND* + sections + * Remove some 64 bit warnings + * Turn off def_static on ia64 for now -- its broken + + -- Camm Maguire Sat, 6 Sep 2003 17:22:10 +0000 + +gcl (2.6.1-3) unstable; urgency=low + + * Fix static detection fr ia64; contblock size detection on arm + * Fix gcc verion checking in gmp3 subconfigure, esp. for arm + * Escape all sgc code with #ifdef SGC + + -- Camm Maguire Fri, 5 Sep 2003 21:32:47 +0000 + +gcl (2.6.1-2) unstable; urgency=low + + * Add windows/install.lsp to clean target + * Add in macosx files to stable and cvs head + * Fix bad debelper postinst, Closes: #208765 + + -- Camm Maguire Fri, 5 Sep 2003 13:15:11 +0000 + +gcl (2.6.1-1) unstable; urgency=low + + * New upstream release + * Type-punning warning fixes + * small_fixnum overflow fixes + * off by one fix in cerror + * Fix compiler error which had not recognized defpackage as a package + operation + * Fix tkl.lisp call to open-named-socket + * Make values-list and nreconc signal errors when they should on + dotted lists. + * Avoid use of windows.h types as macros. + * New config.{sub,guess} + * Windows installer updates from CVS HEAD + * fix potential longjmp clobber in read.d;add some windows files to + main makefile clean target; + * Darwin revealed fixes to usig.c and unixtime.c + * Fix gbc time calculation in case of recursive gbc calls + * Run patch_sharp in LSharp_exclamation_reader to handle new case of + defpackage ops at head of fasl vector, required for maxima build + * Special symbol Dotnil has ordinary list Cnil for plist and hpack + * Small fixes for profiling support + * Restore pp() function for debugging; print out undefined symbol + names + * Small patch for fix xgcl demo (thanks Michael Koehne) + * Better bfd symbol table strategy + * Fix bfd table symbol counting for combined_table profiling + * amd64 linux support + * O6 -> O3 + * static linking on ia64 to work around current mechanism for runtime + generated function descriptors + * enable-static configure option + * Fix debian/gcl-doc.docs for latest texinfo file splitting policy, + Closes: #206017 + * Fix typo in o/sfasli.c + * Rework debian package structure to handle stable and cvs packages + simultaneously + * Add gazonk*.lsp to clean target + * syntax fix to lsp/gprof.hc + * Add support for SGC contblock pages + * Fixes to debian/rules + * Remove unused definitions of Vcs + * Increase default maxpages and stack sizes + * Maintain a persisten *system-directory* binding + * Push installed /h directory onto -I flags on cc command line + * Escape old in-package behavior with #ifdef ANSI_COMMON_LISP + * define HAVE_XDR in linux.h + * reduce resolution of contblock mark_table in gbc.c to match new + minimum granularity introduced via CPTR_ALIGN + * Remove exit function in main.c + + -- Camm Maguire Thu, 4 Sep 2003 02:20:52 +0000 + +gcl (2.5.3-2) unstable; urgency=low + + * gcc-3.3 all platforms + + -- Camm Maguire Mon, 7 Jul 2003 16:10:25 +0000 + +gcl (2.5.3-1) unstable; urgency=low + + * New upstream release + * Restore object_to_float and object_to_double, cmpaux.c, Closes: #195470. + * Remove obsolete functiion multiply-bignum-stack from documentation, + si-defs.texi + * Unstatic object_to_float, object_to_double + + -- Camm Maguire Mon, 2 Jun 2003 12:38:03 -0400 + +gcl (2.5.2-1) unstable; urgency=low + + * New upstream release + * Cleanup xdrfuns.c for Axiom + * Reenable xgcl build + + -- Camm Maguire Thu, 20 Mar 2003 09:15:54 -0500 + +gcl (2.5.1-1) unstable; urgency=high + + * some optimization now on hppa + * Add RELEASE-2.5.1 file + * Add dedication notice to the memory of W. Schelter + + -- Camm Maguire Sun, 2 Mar 2003 10:20:26 -0500 + +gcl (2.5.0.cvs20020625-80) unstable; urgency=low + + * enable japi configure flag, defaults to no + * enable -mlongcall on ppc when using gcc 3.3 or higher + * int -> fixnum in DEFUN function arguments for safety -- ensures + pointers and integers passed by lisp are of same size + * MYmake_fixnum macro simplification + * ufixnum typedef + * Prototypes for cmod et.al. -- restoring maxima build on ia64 + * Fix unaligned access message on ia64 generated by DFLT_aet_fix + * Integer va_arg uses fixnum + * Define __*i3 symbols used by GCL, supplied by libc, and written into + some GCL compiled objects, restores ARM build with ANSI image + * num_log.c miscompilation on ia64 apparently fixed, Closes: #156291 + * Ensure cmpinclude.h up to date in main makefile + + -- Camm Maguire Sat, 1 Mar 2003 17:33:29 -0500 + +gcl (2.5.0.cvs20020625-79) unstable; urgency=low + + * Fix Debian package install bug + + -- Camm Maguire Thu, 27 Feb 2003 23:17:55 -0500 + +gcl (2.5.0.cvs20020625-78) unstable; urgency=low + + * Add config.log config.status and config.cache to clean target + * Remove xgcl-2/debian directory + * Update clcs/sys-proclaim.lisp + + -- Camm Maguire Thu, 27 Feb 2003 18:48:38 -0500 + +gcl (2.5.0.cvs20020625-77) unstable; urgency=low + + * Lintian cleanups + * Don't strip libansi_gcl.a, need .data at end of .o, as with libgcl.a + * Take newlines out of doc string for init-cmp-anon + * Cleanup gcc-3.2 compiler warning + * 64 bit STREF fixes + * pcl and clcs need to have C rebuilt afresh, as 64 bit machines write + different STREF offsets into the C files + * Rework Debian package build a bit + * README.Debian explaining the toggling of the ANSI image + * Typo in debian/rules + * Remove debian/gcl.conffiles + + -- Camm Maguire Thu, 27 Feb 2003 15:56:11 -0500 + +gcl (2.5.0.cvs20020625-76) unstable; urgency=low + + * Debian Priority is optional + * Configure lowest common denominator on m68k to m68020 -- gcc-3.2 + can't handle m68000 -- no __mulsi3 + * Fix bit array bug + * Add upgraded-array-element-type + * Misc typep and subtypep fixes + * Proper error handling in certain array.c functions + * First needs exactly one arg + * Proper error handlin in LAST + * bit array allocation fixes in num_log.c + * eliminate Iapply_fun_n1 + * Dummy system find-class in traditional image, overwritten by pcl + version in ANSI + * Invalid variable is a program error, not a symbol is a type error + * Attempt at uninterned symbol support as slot names + * defstruct changes for ANSI conc-name handling + * Rework ansi build to follow existing pattern for traditional image, + enabling preliminary ansi support on dlopen systems + * Fix broken mingw probe in main makefile + * Rename pcl and clcs files to avoid init name conflict on dlopen + systems + * sys-proclaim for clcs + * Compiler goto indentation + * Compiler pointer cast in call_or_link_closure + * *keep-gaz* compiler variable to save anonymously generated lisp + * si::init-cmp-anon function to initialize anonymously generated and + compiled lisp from .text section of running executable + * Debian/rules builds and ships both images + * Check for small fixnum in make_fixnum macro + * Pass real integers to array functions to minimize fixnum garbage + * Larger SHARP_EQ_CONTEXT_SIZE in read.d + * Shadowing-import instead of import dummy symbols into common-lisp in + ansi_cl.lisp + * Rework object definition in makefiles + * Remove old gmp directory + * Remove old tests directory + * Reinsert JAPI configuration + * Spruce up clean target + * Use saved_gcl to recompile cmpnew files + * Toggle ansi image with GCL_ANSI environment variable + * Version 2.5.1 + + -- Camm Maguire Wed, 26 Feb 2003 21:31:04 -0500 + +gcl (2.5.0.cvs20020625-75) unstable; urgency=low + + * Export truename for dlopen systems + + -- Camm Maguire Fri, 14 Feb 2003 23:31:15 -0500 + +gcl (2.5.0.cvs20020625-74) unstable; urgency=low + + * Remove duplicates in apropos a la clisp + * Use static where possible, remove unused functions, decrease global + symbol count by about 1/3 (~ 600 global functions) + * Inline optimize cmod,cplus,ctimes and cdifference like maxima + * eliminate make-pure-array from lfun_list.lsp, not defined + * Prototypes for all possible compiler generated function calls + * relative symlink for cmpinclude.h in Debian package + + -- Camm Maguire Fri, 14 Feb 2003 20:17:31 -0500 + +gcl (2.5.0.cvs20020625-73) unstable; urgency=low + + * typep fixes for class types + * m68k Build-depend on gcc-2.95 as a temporary work around to bug + 179807 + * gcc-3.2 warning cleanups + * bfd_boolean syntax support for newer binutils + * gcc-3.2 on powerpc can't yet handle -O2 and higher + * Reenable gcc-3.2 for m68k and do some guesswork in configure + + -- Camm Maguire Mon, 10 Feb 2003 13:47:00 -0500 + +gcl (2.5.0.cvs20020625-72) unstable; urgency=high + + * Fix to siLbit_array_op for 0 dimension arrays + * Fixed aref of short-float vector + * nconc can take dotted lists + * tailp returns t if first arg is nil + * Repair nconc and tailp fixes + * varargs->stdarg for gcc 3.3 and higher + + -- Camm Maguire Sun, 9 Feb 2003 16:57:33 -0500 + +gcl (2.5.0.cvs20020625-71) unstable; urgency=high + + * ansi changes to sloop.lsp and conditions.lisp to fix symbol tests + * :definition-before-pcl -> definition-before-pcl + * Allow spaces in pathnames + * Significant fixes to gmp_num_log.c affecting bitwise ops on bignums + * Fix test segfault arising from faulty structure-type-included-type- + name in gcl-low.lisp ; Thanks Peter + * aref1 -> row-major-aref + * Fixes to certain numerical functions to handle denormalized floating + point numbers + * Number of argument check in IapplyVector + * Print offset bit vectors correctly + * Correct precision for formatting short and long doubles + * Added si::modf + * Do not trigger error in IapplyVector if max args is zero + * Fixes to with-package-iterator to cleanup compiler warnings + * :invalid-variable is a type error + * No max arg checking if &key or &rest present + * proper defun declarations in listlib.lsp + * class specifiers in typep, subtypep and coerce + * Corrections to allow-other-key processing in bind.c + * eval sfuns with argument error checking (in one place) + * copy-structure takes only one arg + * si::classp, si::class-of, and si::class-precedence-list overwritten + by pcl analogs when compiling ansi + * recompiled core lsp and compiler files + * restore dvi and html doc build for non-mingw + + -- Camm Maguire Fri, 24 Jan 2003 13:55:11 -0500 + +gcl (2.5.0.cvs20020625-70) unstable; urgency=high + + * loop fixes + * configure fixes + * :common-lisp in *features* + * :definition-before-clcs -> definition-before-clcs + * protect against sgc segfault within fread in fasdump.c -- fixes m68k + acl2 build + * SGC for s390 + + -- Camm Maguire Thu, 5 Dec 2002 08:02:17 -0500 + +gcl (2.5.0.cvs20020625-69) unstable; urgency=high + + * eval fix + * \-mlong-calls for arm + + -- Camm Maguire Mon, 25 Nov 2002 08:35:27 -0500 + +gcl (2.5.0.cvs20020625-68) unstable; urgency=high + + * enable emacsdir configure option + * reordered configure X lib detection for solaris + * redo integer declarations for gmp bignums to avoid compiler warnings + * Clear large and negative count errors for remove/delete + * Loop error fixes + * cache flush with page granularity on m68k + + -- Camm Maguire Thu, 21 Nov 2002 17:44:30 -0500 + +gcl (2.5.0.cvs20020625-67) unstable; urgency=high + + * Align cache flushes for powerpc and m68k on 32 byte boundaries, + should fix acl2 build + * Removed diagnostic SIGILL trapping in cmpaux.c + + -- Camm Maguire Tue, 12 Nov 2002 23:25:49 -0500 + +gcl (2.5.0.cvs20020625-66) unstable; urgency=high + + * Fix SIGILL trap in cmpaux.c + + -- Camm Maguire Mon, 11 Nov 2002 11:14:07 -0500 + +gcl (2.5.0.cvs20020625-65) unstable; urgency=high + + * Miscellaneous Freebsd patches + * non-recursive with-package-iterator + * map-into fill-pointer fixes + * changes to the user-init mechanism for portable acl2 build + + -- Camm Maguire Sun, 10 Nov 2002 12:33:59 -0500 + +gcl (2.5.0.cvs20020625-64) unstable; urgency=low + + * Fix epsilon calculations again to reenable arm build + + -- Camm Maguire Fri, 1 Nov 2002 07:08:33 -0500 + +gcl (2.5.0.cvs20020625-63) unstable; urgency=low + + * Add versioned dependency on the gcc used to build gcl + + -- Camm Maguire Tue, 29 Oct 2002 16:20:22 -0500 + +gcl (2.5.0.cvs20020625-62) unstable; urgency=low + + * with-package-iterator modifications + * with-package-iterator uses labels to correctly provide for recursion + * Fix doc directory problem with install target in info/makefile + * Fix info dir setting in configure + * Priority extra + + -- Camm Maguire Mon, 28 Oct 2002 23:45:07 -0500 + +gcl (2.5.0.cvs20020625-61) unstable; urgency=low + + * Placeholder support for optional condition in find-restart + * defpackage error on importing non-existent symbols + * working with-package-iterator macro + * various package errors reported as :package-error + * Destructuring-bind fixes + * delete-package error fix + * pcl functions use pcl-destructuring-bind for now -- fix later + * Trigger error if function calls use too many 'values' + * Maximum values increased to 50 + * Enable previously failing tests in multiple-value-{setq,prog1}.lsp + * prototype for system_time_zone_helper + * Initial changes for solaris support + * make -> $(MAKE) in makefiles + * Incorporated main GCL (ANSI) Lisp Documentation in distribution + + -- Camm Maguire Mon, 28 Oct 2002 04:31:33 -0500 + +gcl (2.5.0.cvs20020625-60) unstable; urgency=low + + * Still better acosh, courtesy of Barton Willis + * Better epsilon contant determination in ieee case + * Implicit tagbody in do-symbols and do-all-symbols + * Better epsilon handling in ieee case + * Add setf (values ... support + * invalid-function errors are type errors + * ecase and ccase take t and otherwise clauses + * ECASE/CCASE test fixes + * setf values fixes to use setf instead of setq when target value is + not a symbol + * ETYPECASE/CTYPECASE can take t and otherwise + * Backout of restart-clusters export + * fix handler.lisp + * Fix to bfd/GBC interaction + + -- Camm Maguire Wed, 23 Oct 2002 08:38:08 -0400 + +gcl (2.5.0.cvs20020625-59) unstable; urgency=low + + * wrong number of arguments, keyword errors in lambda list bindings, + are program errors + * acosh fix at -1.0 + * New config.sub and config.guess files and automatic updates in + binutils, gmp, and gmp3 subdirs + + -- Camm Maguire Wed, 16 Oct 2002 11:38:56 -0400 + +gcl (2.5.0.cvs20020625-58) unstable; urgency=low + + * GENSYM fixes + * add complement and constantly + * import certain symbols into common-lisp package + * Fix makefile bug in install target + * Prepend instead of overwrite C_INCLUDE_PATH in shell wrapper + * More shell variable fixes in main makefile + * Corrected order of push and pushnew + * Set bfd_error appropriately + * Report function for package-error in condition-definitions.lisp;fix + internal-package-error deinition and handling;export *restart- + clusters* to user error code specified in handler-case;package-error + error formatting changes;dummy optional argument added to compute- + restarts (for now);Paul Dietz patch to defpackage.lsp fixing several + tests (thanks);export/unexport error handling fixes + * Recompile c,h and data files + * Fix number of argument errors in debug.lsp;documentation support for + packages in defpackage.lsp and module.lsp;do-symbols loops over + inherited symbols too in packlib.lsp + * Reworked EXTRAS variable handling in unixport/makefile + * Build-depend on autotools-dev and automatic update of config.sub and + config.guess;newer config.sub and config.guess in cvs tree; Closes: + #164526 + * Remove stray comments in package.d + * elt errors of type type error + * bad-sequence limit returns type error + + -- Camm Maguire Tue, 15 Oct 2002 15:39:19 -0400 + +gcl (2.5.0.cvs20020625-57) unstable; urgency=low + + * Capitalization changes to names of special characters;graphic-char-p + fix + * fix shadowing of existing symbols in package.d + * (simple-)base-string not a subtype of (simple-)vector + * add package-error condition(preliminary);hash conditions only by the + error name, not the format string;pass error types for both + correctable and non-correctable situations;eliminate duplicate + loading of clcs/package.lisp;Allow t doc-types in documentation + (returning nil) for now;fix final type errors in predlib.lsp + (regarding base-string);other error functions to pass continuable + errors (needs cleaning up);package designators can be + characters;delete-package added;make-package doesn't :use lisp by + default;in-package returns error if package does not exist instead + of making the package(relatively big change -- need to address + instances of in-package in .lsp code);call make-package on relevant + packages in init_gcl.lsp.in and pcl/sys-package.lisp; + * \-ffunction-sections for hppa with no-optimization -- enables first + maxima build here + * separate lisp variables to specify optimization flags for level 2 + and 3 + * symbol-name throws a type error on bad input + * tk8.2 -> tk8.3 + * Fix bug in main makefile + * Newlines at end of test files + + -- Camm Maguire Wed, 9 Oct 2002 15:04:41 -0400 + +gcl (2.5.0.cvs20020625-56) unstable; urgency=high + + * ansi-test corrections; extra-libs option to LINK function; LINK doc + change; subtypep and string changes to pass more tests + * Add method-combination and structure-object symbols for ansi;remove + unused variables in debug.lsp;remove in-package system from + defstruct.lsp;make-keyword and defmacro temporary function + placeholders in destructuring_bind.lsp;predlib changes to fix ansi- + test type errors;break-call takes 2 args (sys-proclaim.lisp);char + and char-set protected by string dimension not fillpointer in + string.d;fix bug in string.d:member_char for vector types;redefine + slot reader and writer functions in pcl/impl/gcl/gcl-low.lisp + + -- Camm Maguire Sat, 5 Oct 2002 14:33:46 -0400 + +gcl (2.5.0.cvs20020625-55) unstable; urgency=high + + * Add LINK documentation to info pages + * 0 length last support + * make-sequence error check for 'null type and non-zero size + * Dotted-list support in member + * Reworked dotnil definitions and support macros + * add compile-file-pathname + * setup C_INCLUDE_PATH env variable in gcl shell wrapper + * POSITIVE-FIXNUM variable type,simple-error->type error where + indicated by various ansi tests, eq->eql in ldiff and tailp;proper + lists only in member et. al. + * rev keyword for member1 to reverse test arguments + * specific-error function to pass a given type of error from lisp + * set-exclusive-or preserves order of test arguments + * type-errors where appropriate in make-sequence + * nil keys accepted in remove/delete et.al. + * Reworked linking command line to ensure that certain symbols are + resolved in libgcl.a as opposed to certain system libraries, e.g. + gmp + * new gmp for m68k;no -ffloat-store for m68k a requested by user due + to performance impact (will alter test results in maxima + accordingly) + * libgclp.a for objects to be overriden by the C library if necessary + * readably support + * boolean type + * Missing ansi type support + * subtype code for boolean + * add missing ansi types as known types + * other preliminary subtype code for missing ansi types + * rework result-type check in make-sequence + * :element-type support in make-string (preliminary) + * (char ignores fill-pointer + * remove -O4 from debian/rules + + -- Camm Maguire Thu, 3 Oct 2002 01:52:45 -0400 + +gcl (2.5.0.cvs20020625-54) unstable; urgency=high + + * Fix delete et. al. :from-end error; typo in gbc.c + * character and string-char equal in type hierarchy + * concatenate/make-sequence fixes + * merge takes nil key argument + * make-sequence checks size against result type + * install endp macro for dotted list support + + -- Camm Maguire Tue, 24 Sep 2002 14:57:44 -0400 + +gcl (2.5.0.cvs20020625-53) unstable; urgency=high + + * Sleep with (in principle) microsecond precision + * nth-value macro added + * \-ffloat\-store and warning cleanups for m68k + * Compile hppa with debugging, will get a build but a broken one, ok + for now, Closes: #159591 + + -- Camm Maguire Fri, 20 Sep 2002 09:48:35 -0400 + +gcl (2.5.0.cvs20020625-52) unstable; urgency=high + + * Fixed gcc version bug in debian/rules + + -- Camm Maguire Thu, 12 Sep 2002 18:00:50 -0400 + +gcl (2.5.0.cvs20020625-51) unstable; urgency=high + + * static gmp for m68k + + -- Camm Maguire Thu, 12 Sep 2002 09:33:03 -0400 + +gcl (2.5.0.cvs20020625-50) unstable; urgency=high + + * Reworked static gmp target for new libgcl.a;gcc-3.2 for + hppa,ia64,and arm;libgmp2-dev for m68k;no rsym with + dynsysbfd;build_symbol_table earlier to shrink table size; + + -- Camm Maguire Thu, 12 Sep 2002 00:39:17 -0400 + +gcl (2.5.0.cvs20020625-49) unstable; urgency=high + + * Use old gmp for m68k until can pin down test failure with gmp3 + + -- Camm Maguire Tue, 10 Sep 2002 00:36:10 -0400 + +gcl (2.5.0.cvs20020625-48) unstable; urgency=high + + * Rework build and install so that custom images can be made without + the source tree, even when using dlopen + + -- Camm Maguire Mon, 9 Sep 2002 23:26:47 -0400 + +gcl (2.5.0.cvs20020625-47) unstable; urgency=high + + * Install cmpinclude.h in system include directory + + -- Camm Maguire Thu, 29 Aug 2002 23:31:55 -0400 + +gcl (2.5.0.cvs20020625-46) unstable; urgency=high + + * Keep a *much* smaller piece of gmp.h in cmpinclude.h, reducing image + size by almost 100k + * Check for _SHORT_LIMB and _LONG_LONG_LIMB in configure + * Remove build specific include directories from compile command in + final executable + * Include local regexp.h explicitly in cmpinclude.h, to eliminate + intereference with system regexp.h, and to fix bug in which gcl + compilation depended on existing build directories + * Correctly add directory paths to extra gmp file targets in + unixport/makefile for m68k + + -- Camm Maguire Thu, 29 Aug 2002 21:56:28 -0400 + +gcl (2.5.0.cvs20020625-45) unstable; urgency=high + + * Fix typo in rshift target for m68k + + -- Camm Maguire Wed, 28 Aug 2002 18:02:00 -0400 + +gcl (2.5.0.cvs20020625-44) unstable; urgency=high + + * Handle second argument to last; treat dotted lists correctly in + ldiff et. al., tailp fix + * optional key argument for assoc-if et.al.;eval getf deflt if in setf + * Fix infinite loop in assoc-if et.al. + * X_LIBS and X_CFLAGS determination in configure script + + -- Camm Maguire Wed, 21 Aug 2002 18:22:37 -0400 + +gcl (2.5.0.cvs20020625-43) unstable; urgency=high + + * Larger ihs stack;fix array-total-size-limit;check negative + fillp;allow #P + * don't make common_lisp package when not configuring with --enable- + ansi + * Patch gmp3/mpn/m68k/{l,r}shift.asm, restore gmp3 to m68k build + * Dynamic libgmp support, overriding with patched functions from local + source where necessary + + -- Camm Maguire Sun, 18 Aug 2002 12:10:55 -0400 + +gcl (2.5.0.cvs20020625-42) unstable; urgency=high + + * copy ansidecl.h and symcat.h in h/ for local bfd builds + * localize bfd.h includes to sfaslbfd.c + * take bfd/po out of the build loop + * import xgcl-2, but don't build by default + * oldgmp configure option, and made default for m68k as temporary + workaround + + -- Camm Maguire Mon, 12 Aug 2002 23:49:09 -0400 + +gcl (2.5.0.cvs20020625-41) unstable; urgency=high + + * Minor rules revision for i164 + + -- Camm Maguire Sun, 11 Aug 2002 13:49:03 -0400 + +gcl (2.5.0.cvs20020625-40) unstable; urgency=high + + * revamp CONST configure test for certain bfd versions + + -- Camm Maguire Sun, 11 Aug 2002 12:31:35 -0400 + +gcl (2.5.0.cvs20020625-39) unstable; urgency=high + + * gcc-3.1 for ia64 fixes a compilation bug in num_co.c for -O3 and + higher -- code takes address of a variable kept in a register + * compile num_log.c with -O only on ia64 to work around compiler bug + + -- Camm Maguire Sun, 11 Aug 2002 08:53:03 -0400 + +gcl (2.5.0.cvs20020625-38) unstable; urgency=high + + * check for long c statck addresses, fixing NULL_OR_ON_C_STACK macro + for ia64 + * Remove error in clean target + + -- Camm Maguire Sat, 10 Aug 2002 13:20:08 -0400 + +gcl (2.5.0.cvs20020625-37) unstable; urgency=high + + * Replace tmpnam and mktemp with less dangerous mkstemp + + -- Camm Maguire Fri, 9 Aug 2002 19:45:52 -0400 + +gcl (2.5.0.cvs20020625-36) unstable; urgency=high + + * Fix rsym compilation when not using bfd + + -- Camm Maguire Fri, 9 Aug 2002 19:10:16 -0400 + +gcl (2.5.0.cvs20020625-35) unstable; urgency=high + + * Don't build bfd/po subdir + * Build-depend on automake and gettext + + -- Camm Maguire Fri, 9 Aug 2002 14:36:58 -0400 + +gcl (2.5.0.cvs20020625-34) unstable; urgency=high + + * fix zero length array support + * reverse configure order for bfd and libiberty + + -- Camm Maguire Fri, 9 Aug 2002 11:52:38 -0400 + +gcl (2.5.0.cvs20020625-33) unstable; urgency=high + + * chmod +x for subconfigures + * dlopen for appropriate arches in debian/rules + * add custreloc configure option + + -- Camm Maguire Fri, 9 Aug 2002 10:16:55 -0400 + +gcl (2.5.0.cvs20020625-32) unstable; urgency=high + + * Local bfd build option to prepare for arch-specific patches + * Try default gmp3 build on m68k + * Fix merge-pathnames + + -- Camm Maguire Fri, 9 Aug 2002 00:13:16 -0400 + +gcl (2.5.0.cvs20020625-31) unstable; urgency=high + + * #undef bool in object.h for some gcc-3.1 installations + * New number_tan implementation using real tan, so optimized compiled + code will find symbol in -lm + + -- Camm Maguire Tue, 6 Aug 2002 18:37:52 -0400 + +gcl (2.5.0.cvs20020625-30) unstable; urgency=high + + * fix bug in cmpif.lsp and recompile compiler + * \-O6 \-fomit\-frame\-pointer for Linux, speed gain of ~ 10% + * clean saved_gcl_pcl + + -- Camm Maguire Mon, 5 Aug 2002 16:34:33 -0400 + +gcl (2.5.0.cvs20020625-29) unstable; urgency=high + + * Back out of hppa assembler register flush for hppa, apparently issue + is cleared by long/object function declaration fix + * Remove ansi2knr.1 man page, Closes: #155067 + * hppa still has gc leak, possibly due to faulty setjmp. Try Lamont + Jones' latest assembler to flush regs + + -- Camm Maguire Fri, 2 Aug 2002 20:50:21 -0400 + +gcl (2.5.0.cvs20020625-28) unstable; urgency=high + + * SGC support for alpha + * generic gmp3 build for m68k + * compiler changes to declare all functions as returning object, with + functions that actually return long being cast appropriately + * back out of m68k hack in eval.c and funlink.c + + -- Camm Maguire Fri, 2 Aug 2002 18:22:04 -0400 + +gcl (2.5.0.cvs20020625-27) unstable; urgency=high + + * Use generic lshift.c in gmp3 for m68k + * use SGC for ia64 + * m68k workaround, cast (object(*)()) to (long(*)()) in funlink.c and + eval.c + * GBC register spiil asm for hppa + * fix hash_equal declaration error in hash.d + + -- Camm Maguire Thu, 1 Aug 2002 18:12:49 -0400 + +gcl (2.5.0.cvs20020625-26) unstable; urgency=high + + * Remove extra load of tkl.o in install target of main makefile + * gcc-3.1 for hppa + * Remove gcc version spec for m68k + * \-fPIC for hppa, needed for dlopen + * cleanup gcc 3.1 warning in funlink.c + * cc instead of ld for -shared linking in fasldlsym.c (needed for + hppa) + + -- Camm Maguire Wed, 31 Jul 2002 18:46:54 -0400 + +gcl (2.5.0.cvs20020625-25) unstable; urgency=high + + * Move chmod +x gmp3/* into debian/rules + * Remove gclm.bat from Debian package + * Build-Depend on autoconf, Closes: #154909 + + -- Camm Maguire Wed, 31 Jul 2002 09:44:20 -0400 + +gcl (2.5.0.cvs20020625-24) unstable; urgency=high + + * chmod +x gmp3/configure + + -- Camm Maguire Wed, 31 Jul 2002 07:55:17 -0400 + +gcl (2.5.0.cvs20020625-23) unstable; urgency=high + + * 64bit SGC support + * SGC on by default for sparc-linux and mips(el)-linux + * Optimized logxor funtion + * Check for MP_LIMB_SIZE in fasdump.c, for 64bit support + * gbc fix for ia64 + * gmp3 import for ia64 + * system bzero, bcmp, and bcopy function prototypes + + -- Camm Maguire Tue, 30 Jul 2002 23:11:58 -0400 + +gcl (2.5.0.cvs20020625-22) unstable; urgency=high + + * ElfW macros in rsym*.c for 64bit + * Allow for 8 byte gmp mp_limbs + + -- Camm Maguire Thu, 25 Jul 2002 18:52:37 -0400 + +gcl (2.5.0.cvs20020625-21) unstable; urgency=high + + * Support for dlopen object loading where bfd is not yet working -- + ./configure --enable-dlopen + + -- Camm Maguire Thu, 25 Jul 2002 15:08:05 -0400 + +gcl (2.5.0.cvs20020625-20) unstable; urgency=high + + * Cleanups for --disable-bfd option + + -- Camm Maguire Wed, 24 Jul 2002 15:05:28 -0400 + +gcl (2.5.0.cvs20020625-19) unstable; urgency=high + + * 64bit fixes + + -- Camm Maguire Wed, 24 Jul 2002 12:16:42 -0400 + +gcl (2.5.0.cvs20020625-18) unstable; urgency=high + + * misc. lintian cleanups, mostly for 64 bit + + -- Camm Maguire Tue, 23 Jul 2002 23:35:03 -0400 + +gcl (2.5.0.cvs20020625-17) unstable; urgency=high + + * Fixed typeo in error.c preventing arm compilation + + -- Camm Maguire Mon, 22 Jul 2002 17:18:18 -0400 + +gcl (2.5.0.cvs20020625-16) unstable; urgency=high + + * Fix bad on_stack_list_vector args + + -- Camm Maguire Mon, 22 Jul 2002 16:10:16 -0400 + +gcl (2.5.0.cvs20020625-15) unstable; urgency=high + + * More lint changes for sundry arches + * Fixed bug in Iapply_ap + + -- Camm Maguire Sat, 20 Jul 2002 23:40:33 -0400 + +gcl (2.5.0.cvs20020625-14) unstable; urgency=high + + * include stdarg.h when defining _GNU_SOURCE + + -- Camm Maguire Sat, 20 Jul 2002 18:47:43 -0400 + +gcl (2.5.0.cvs20020625-13) unstable; urgency=high + + * Proper va_dcl declarations + + -- Camm Maguire Sat, 20 Jul 2002 10:40:02 -0400 + +gcl (2.5.0.cvs20020625-12) unstable; urgency=high + + * cvs updates for missing ptrdiff_t + + -- Camm Maguire Sat, 20 Jul 2002 08:41:37 -0400 + +gcl (2.5.0.cvs20020625-11) unstable; urgency=high + + * cvs changes to compile cleanly with -Wall + + -- Camm Maguire Sat, 20 Jul 2002 02:59:33 -0400 + +gcl (2.5.0.cvs20020625-10) unstable; urgency=high + + * Architecture any, though still have some issues + + -- Camm Maguire Fri, 12 Jul 2002 19:02:09 -0400 + +gcl (2.5.0.cvs20020625-9) unstable; urgency=high + + * cvs commits for 64bit support + + -- Camm Maguire Fri, 12 Jul 2002 18:01:21 -0400 + +gcl (2.5.0.cvs20020625-8) unstable; urgency=high + + * NULL_OR_ON_C_STACK macro correction for m68k + + -- Camm Maguire Fri, 12 Jul 2002 14:37:48 -0400 + +gcl (2.5.0.cvs20020625-7) unstable; urgency=high + + * arm is bigendian + + -- Camm Maguire Wed, 10 Jul 2002 18:04:22 -0400 + +gcl (2.5.0.cvs20020625-6) unstable; urgency=high + + * cvs updates for arm build + + -- Camm Maguire Tue, 9 Jul 2002 16:09:26 -0400 + +gcl (2.5.0.cvs20020625-5) unstable; urgency=high + + * CC environment variable setting in debian/rules to aid in porting + * gcc 2.95 for m68k + + -- Camm Maguire Sat, 6 Jul 2002 23:00:23 -0400 + +gcl (2.5.0.cvs20020625-4) unstable; urgency=high + + * gcc 3.0 for arm + * cachectl header for m68k + + -- Camm Maguire Mon, 1 Jul 2002 15:47:53 -0400 + +gcl (2.5.0.cvs20020625-3) unstable; urgency=high + + * Better libbfd detection for arm/alpha + + -- Camm Maguire Wed, 26 Jun 2002 17:27:21 -0400 + +gcl (2.5.0.cvs20020625-2) unstable; urgency=high + + * s390 support + + -- Camm Maguire Tue, 25 Jun 2002 21:25:35 -0400 + +gcl (2.5.0.cvs20020625-1) unstable; urgency=high + + * CVS updates, new s390 arch + + -- Camm Maguire Tue, 25 Jun 2002 19:26:36 -0400 + +gcl (2.5.0.cvs20020610-2) unstable; urgency=high + + * cvs updates + + -- Camm Maguire Thu, 13 Jun 2002 08:42:32 -0400 + +gcl (2.5.0.cvs20020610-1) unstable; urgency=high + + * cvs updates + + -- Camm Maguire Wed, 12 Jun 2002 23:04:57 -0400 + +gcl (2.5.0.cvs20020523-2) unstable; urgency=high + + * configure updates for better tk detection + + -- Camm Maguire Fri, 24 May 2002 18:50:22 -0400 + +gcl (2.5.0.cvs20020523-1) unstable; urgency=high + + * New upstream release + + -- Camm Maguire Fri, 24 May 2002 18:50:22 -0400 + +gcl (2.5.0.cvs20020429-1) unstable; urgency=high + + * Build-Depend on tk8.2-dev, Closes: #144330 + * New cvs updates + * Added sparc to arch list, Closes: #143465 + + -- Camm Maguire Mon, 29 Apr 2002 23:07:36 -0400 + +gcl (2.5.0.cvs20020219-2) unstable; urgency=medium + + * flavor ->debian-emacs-flavor in emacsen-startup + + -- Camm Maguire Mon, 4 Mar 2002 14:29:59 -0500 + +gcl (2.5.0.cvs20020219-1) unstable; urgency=medium + + * Updated package descriptions, Closes: #134402 + * Static linking of libbfd, Closes: #134647 + * Gcl currently only available on i386, arm and m68k as specified in + the Architecture control field, Closes: #133912 + + -- Camm Maguire Tue, 19 Feb 2002 12:04:29 -0500 + +gcl (2.5.0.cvs-3) unstable; urgency=medium + + * Build-depend on texi2html, Closes: #133699 + + -- Camm Maguire Wed, 13 Feb 2002 16:22:35 -0500 + +gcl (2.5.0.cvs-2) unstable; urgency=medium + + * Put in versioned dependency on binutils for libbfd support, rebuilt + with latest binutils, Closes: #133004 + + -- Camm Maguire Tue, 12 Feb 2002 13:19:12 -0500 + +gcl (2.5.0.cvs-1) unstable; urgency=medium + + * Latest patches from CVS, enabling libbfd relocations, among other + things + * /etc/emacs/site-start.d/50gcl.el as conffile, Closes: #132137 + * limited arm and m68k support + + -- Camm Maguire Mon, 4 Feb 2002 09:32:29 -0500 + +gcl (2.5.0-1) unstable; urgency=medium + + * New maintainer + * New upstream release + * New release so far builds only on i386, Closes: #116070, Closes: + #123371 + * New release so far builds only on i386, Closes: #115041 + * Gcl must currently use its own copy of gmp, as the upstream version + of gmp uses malloc, which interferes with gcl's garbage collection + and relocation scheme. The change from malloc to alloca has been + suggested to upstream gmp developers. Closes: #108910 + * Tcl/Tk support now in. Closes: #113197 + + -- Camm Maguire Fri, 21 Dec 2001 00:03:43 -0500 + +gcl (2.4.0-3) unstable; urgency=medium + + * Make gcl use libgmp3 package. (closes: #108910) + * Remove tk support. (closes: #108909) + * Fix stupid missing dependency line. (closes: #108907, #108908) + * Removed readme.mingw from the debian package, this package is not compiled under + mingw (windows gcc port). + * Close ITA bug. (closes: #112312) + + -- Baruch Even Sat, 22 Sep 2001 00:27:14 +0300 + +gcl (2.4.0-2) unstable; urgency=low + + * Change tclsh Build-Depends to tcl8.0 because apt is broken. (closes: #99261) + + -- JP Sugarbroad Wed, 30 May 2001 14:34:53 -0500 + +gcl (2.4.0-1) unstable; urgency=low + + * New upstream release + + -- JP Sugarbroad Sun, 13 May 2001 20:31:01 -0500 + +gcl (2.3.7+beta3-3) unstable; urgency=low + + * Move gcl-doc to section doc (closes: #78666) + + -- JP Sugarbroad Sun, 13 May 2001 20:26:28 -0500 + +gcl (2.3.7+beta3-2) unstable; urgency=low + + * Remove alpha from arch list + * Move tcl/tk from Depends to Suggests + + -- JP Sugarbroad Fri, 4 May 2001 16:24:11 -0500 + +gcl (2.3.7+beta3-1) unstable; urgency=low + + * New maintainer + * Repackaged with debhelper (closes: #42045, #86097, #91475, #91478) + * New upstream release (closes: #59577, #71096) + * Added sparc+alpha, removed m68k (closes: #87407) + + -- JP Sugarbroad Mon, 30 Apr 2001 19:07:49 -0500 + +gcl (2.2.1-6) unstable; urgency=low + + * Disable stripping of "saved_gcl" binary. (#45778) + + -- Steve Dunham Fri, 24 Sep 1999 14:39:15 -0400 + +gcl (2.2.1-5) unstable; urgency=low + + * Fix m68k build + + -- Steve Dunham Tue, 6 Jul 1999 09:45:09 -0400 + +gcl (2.2.1-4) unstable; urgency=low + + * Fix bug #31718 + + -- Steve Dunham Fri, 2 Jul 1999 11:11:12 -0400 + +gcl (2.2.1-3) unstable; urgency=low + + * Add m68k patches + + -- Steve Dunham Wed, 16 Dec 1998 14:25:46 -0500 + +gcl (2.2.1-2) unstable; urgency=low + + * Compile against libc6. New maintainer. + + -- Steve Dunham Wed, 5 Nov 1997 10:09:12 -0500 + +gcl (2.2.1-1) unstable; urgency=low + + * New upstream release; suggests tcl76, tk42. + * gcl-doc contains gcl-si and gcl-tk info pages. + * debian/rules: clean target removes temporary files from h and o + subdirectories (bug #5984). + + -- Karl Sackett Fri, 3 Jan 1997 10:16:40 -0600 + +gcl (2.2-5) unstable; urgency=low + + * Converted package to 2.1.1.0 standard. + * Stripped gcltkaux (bug #5074). + * gcl-si and gcl-tk info pages converted to HTML. + + -- Karl Sackett Tue, 5 Nov 1996 13:30:30 -0600 + +2.2-4 + * add-defs: patched locates for tk.tcl, init.tcl + * gcl-tk/tkAppInit.c: patched for tk4.1 support + * gcl-tk/tkMain.c: patched for tk4.1 support +2.2-3 + * Debian support files now partily architecture independent. + There are, however, no add-defs files except for 386-linux. + * Rebuilt package to correct corrupted upload problem. +2.2-2 + * Removed tk support from distribution. This was written to + use tk-3.6 and doesn't support tk-4.0 or tk-4.1. I am not aware + of any plans to upgrade the code. (Closes bug #2865) +2.2-1 + * Added Debian support files + * h/386-linux.defs: set OFLAG = -O2 + * h/386-linux.h: undid patch that swaped signal.h for sigcontext.h diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..0c1124b0 --- /dev/null +++ b/debian/control @@ -0,0 +1,82 @@ +Source: gcl27 +Section: lisp +Priority: optional +Maintainer: Camm Maguire +Homepage: http://gnu.org/software/gcl +Build-Depends: debhelper-compat (= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, texinfo, texlive-latex-extra, texlive-fonts-recommended, libtirpc-dev, binutils-dev +Build-Depends-Indep: dh-elpa +Standards-Version: 4.5.0 + +Package: gcl27 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ucf, libtirpc-dev +Suggests: gcl27-doc +Description: GNU Common Lisp compiler + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains the Lisp system itself. Documentation + is provided in the gcl-doc package. + +Package: gcl27-tk +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, gcl27 (>= ${source:Version}) +Description: GNU Common Lisp compiler + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains a graphical interface based on the popular + TCL/TK toolkit. + +Package: elpa-gcl27 +Architecture: all +Depends: gcl27 (>= ${source:Version}), emacs-gtk | emacsen, ${misc:Depends} +Section: lisp +Description: GNU Common Lisp compiler + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains an emacs interface to GCL. + +Package: gcl27-doc +Section: doc +Architecture: all +Conflicts: gclinfo +Replaces: gclinfo +Depends: dpkg (>= 1.15.4), ${misc:Depends} +Multi-Arch: foreign +Description: Documentation for GNU Common Lisp + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains documentation in info format of the + system internals. + +Package: gcl27-tk-doc +Section: doc +Architecture: all +Conflicts: gclinfo +Replaces: gclinfo +Depends: dpkg (>= 1.15.4), ${misc:Depends} +Multi-Arch: foreign +Description: Documentation for GNU Common Lisp + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains documentation in info format of the + graphical interface currently implemented in Tcl/Tk. diff --git a/debian/control_ b/debian/control_ new file mode 100644 index 00000000..48ac25b4 --- /dev/null +++ b/debian/control_ @@ -0,0 +1,39 @@ +Source: gcl +Section: lisp +Priority: optional +Maintainer: Camm Maguire +Homepage: http://gnu.org/software/gcl +Build-Depends: debhelper (>= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, texinfo +Standards-Version: 4.5.0 + +Package: gcl +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, emacs | emacsen, ucf +Breaks: emacsen-common (<< 2.0.0) +Suggests: gcl-doc +Description: GNU Common Lisp compiler + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains the Lisp system itself. Documentation + is provided in the gcl-doc package. + +Package: gcl-doc +Section: doc +Architecture: all +Conflicts: gclinfo +Replaces: gclinfo +Depends: dpkg (>= 1.15.4), ${misc:Depends} +Description: Documentation for GNU Common Lisp + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains Documentation in info format of both the + system internals, as well as the graphical interface currently + implemented in Tcl/Tk. diff --git a/debian/control_27 b/debian/control_27 new file mode 100644 index 00000000..0c1124b0 --- /dev/null +++ b/debian/control_27 @@ -0,0 +1,82 @@ +Source: gcl27 +Section: lisp +Priority: optional +Maintainer: Camm Maguire +Homepage: http://gnu.org/software/gcl +Build-Depends: debhelper-compat (= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, texinfo, texlive-latex-extra, texlive-fonts-recommended, libtirpc-dev, binutils-dev +Build-Depends-Indep: dh-elpa +Standards-Version: 4.5.0 + +Package: gcl27 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ucf, libtirpc-dev +Suggests: gcl27-doc +Description: GNU Common Lisp compiler + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains the Lisp system itself. Documentation + is provided in the gcl-doc package. + +Package: gcl27-tk +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, gcl27 (>= ${source:Version}) +Description: GNU Common Lisp compiler + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains a graphical interface based on the popular + TCL/TK toolkit. + +Package: elpa-gcl27 +Architecture: all +Depends: gcl27 (>= ${source:Version}), emacs-gtk | emacsen, ${misc:Depends} +Section: lisp +Description: GNU Common Lisp compiler + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains an emacs interface to GCL. + +Package: gcl27-doc +Section: doc +Architecture: all +Conflicts: gclinfo +Replaces: gclinfo +Depends: dpkg (>= 1.15.4), ${misc:Depends} +Multi-Arch: foreign +Description: Documentation for GNU Common Lisp + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains documentation in info format of the + system internals. + +Package: gcl27-tk-doc +Section: doc +Architecture: all +Conflicts: gclinfo +Replaces: gclinfo +Depends: dpkg (>= 1.15.4), ${misc:Depends} +Multi-Arch: foreign +Description: Documentation for GNU Common Lisp + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains documentation in info format of the + graphical interface currently implemented in Tcl/Tk. diff --git a/debian/control_cvs b/debian/control_cvs new file mode 100644 index 00000000..ee7f6e1f --- /dev/null +++ b/debian/control_cvs @@ -0,0 +1,39 @@ +Source: gclcvs +Section: lisp +Priority: optional +Maintainer: Camm Maguire +Homepage: http://gnu.org/software/gcl +Build-Depends: debhelper (>= 13), libeditreadline-dev, m4, tk8.6-dev, libgmp-dev, libxmu-dev, libxaw7-dev, po-debconf, zlib1g-dev, tcl, gcc-11 +Standards-Version: 4.5.0 + +Package: gclcvs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${gcc}, emacs | emacsen, ucf +Breaks: emacsen-common (<< 2.0.0) +Suggests: gclcvs-doc +Description: GNU Common Lisp compiler, CVS snapshot + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains the Lisp system itself. Documentation + is provided in the gclcvs-doc package. + +Package: gclcvs-doc +Section: doc +Architecture: all +Conflicts: gclinfo +Replaces: gclinfo +Depends: dpkg (>= 1.15.4), ${misc:Depends} +Description: Documentation for GNU Common Lisp, CVS snapshot + GNU Common Lisp (GCL) is a Common Lisp compiler and interpreter + implemented in C, and complying mostly with the standard set + forth in the book "Common Lisp, the Language I". It attempts + to strike a useful middle ground in performance and portability + from its design around C. + . + This package contains Documentation in info format of both the + system internals, as well as the graphical interface currently + implemented in Tcl/Tk. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..fd70c5ac --- /dev/null +++ b/debian/copyright @@ -0,0 +1,97 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ + +Files: * +Copyright: 1989 The University of Texas at Austin,William F. Schelter + 1989 Free Software Foundation + 2024 Camm Maguire +License: LGPL-2 + +Files: cmpnew/* +Copyright: 1989 The University of Texas at Austin,William F. Schelter + 1994 M. Hagiya,T. Yuasa,William F. Schelter + 2024 Camm Maguire +License: LGPL-2 + +Files: elisp/* +Copyright: 1994,1998 William F. Schelter + 1985-1988 Free Software Foundation +License: GPL-2 + +Files: gcl-tk/* +Copyright: 1994 Rami el Charif,William F. Schelter + 1996 Sun Microsystems + 2024 Camm Maguire +License: LGPL-2 + +Files: h/* +Copyright: 1994 M. Hagiya,T. Yuasa,William F. Schelter + 2024 Camm Maguire +License: LGPL-2 + +Files: debian/* +Copyright: 2024 Camm Maguire +License: GPL-2 + +Files: ansi-tests/* +Copyright: 2004 Paul Dietz +License: LGPL-2 + +Files: ansi-tests/rt.lsp +Copyright: 1990 Massachusetts Institute of Technology +License: public-domain + +Files: info/* +Copyright: 1994 William F. Schelter +License: GPL-2 + +Files: lsp/* +Copyright: 1994 M. Hagiya,T. Yuasa,William F. Schelter + 1985,1986,1989,1990 William F. Schelter + 2024 Camm Maguire +License: LGPL-2 + +Files: mod/gcl_defpackage.lsp +Copyright: 1990,1991 lsp The Boeing Company + 2024 Camm Maguire +License: public-domain + +Files: o/* +Copyright: 1994 M. Hagiya,T. Yuasa,William F. Schelter,Rami el Charif + 1991 William F. Schelter + 1985-1994 Free Software Foundation + 2024 Camm Maguire +License: LGPL-2 + +Files: o/gcl_readline.d +Copyright: 2000 Tuukka Toivonen + 2024 Camm Maguire +License: LGPL-2 + +Files: pcl/* +Copyright: 1985-1990 Xerox Corporation + 1990 Franz Inc. + 2024 Camm Maguire +License: public-domain + +Files: xgcl-2/* +Copyright: 1987 Digital Equipment Corporation,Massachusetts Institute of Technology + 1994 Hiep Huu Nguyen,William F. Schelter,The University of Texas at Austin + 1994,1995,1996,2006,2007,2008,2010 Gordon S. Novak Jr.,The University of Texas at Austin + 1992 The University of Texas at Austin + 1989 Free Software Foundation + 2006 Hiep Huu Nguyen + 2024 Camm Maguire +License: GPL-2 + +License: GPL-2 + On Debian GNU/Linux systems, the complete text of the GNU General + Public License Version 2 can be found in + /usr/share/common-licenses/GPL-2. + +License: LGPL-2 + On Debian GNU/Linux systems, the complete text of the GNU General + Public License Version 2 can be found in + /usr/share/common-licenses/LGPL-2. + +License: public-domain + All permissions granted. diff --git a/debian/debian-autoloads.el b/debian/debian-autoloads.el new file mode 100644 index 00000000..ebf323f6 --- /dev/null +++ b/debian/debian-autoloads.el @@ -0,0 +1,4 @@ +;;;###autoload +(autoload 'run "gcl" "" t) +;;;###autoload +(autoload 'dbl "dbl" "" t) diff --git a/debian/gcl-pkg.el.in b/debian/gcl-pkg.el.in new file mode 100644 index 00000000..2dfc613e --- /dev/null +++ b/debian/gcl-pkg.el.in @@ -0,0 +1,3 @@ + +(define-package "gcl@EXT@" "@VR@" + "Emacs mode for running GCL.") diff --git a/debian/gcl.sh b/debian/gcl.sh new file mode 100755 index 00000000..b172b722 --- /dev/null +++ b/debian/gcl.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +EXT=@EXT@ +VERS=@VERS@ + +. /etc/default/gcl$EXT +if ! set | grep -q -w GCL_ANSI ; then GCL_ANSI=$DEFAULT_GCL_ANSI ; fi +if ! set | grep -q -w GCL_PROF ; then GCL_PROF=$DEFAULT_GCL_PROF ; fi + +DIR=/usr/lib/gcl-$VERS; + +if [ "$GCL_ANSI" = "" ] ; then + if [ "$GCL_PROF" = "" ] ; then + EXE=saved_gcl; + else + EXE=saved_gcl_gprof; + fi +else + if [ "$GCL_PROF" = "" ] ; then + EXE=saved_ansi_gcl; + else + EXE=saved_ansi_gcl_gprof; + fi +fi +SYS=$DIR/unixport + +exec $SYS/$EXE -dir $SYS/ -libdir $DIR/ \ + -eval '(setq si::*allow-gzipped-file* t)' \ + -eval '(setq si::*tk-library* "/usr/lib/tk@TKVERS@")' \ + -eval '(setq si::*default-info-files* (list "gcl@EXT@-si.info" "gcl@EXT@-tk.info" "gcl@EXT@.info"))' \ + "$@" + +# other options: -load /tmp/foo.o -load jo.lsp -eval "(joe 3)" diff --git a/debian/gcl27.templates b/debian/gcl27.templates new file mode 100644 index 00000000..be351d0f --- /dev/null +++ b/debian/gcl27.templates @@ -0,0 +1,26 @@ +Template: gcl27/default_gcl_ansi +Type: boolean +_Description: Use the work-in-progress ANSI build by default? + GCL is in the process of providing an ANSI compliant image in addition to + its traditional CLtL1 image still in production use. Please see the + README.Debian file for a brief description of these terms. Setting this + variable will determine which image you will use by default on executing + 'gcl27'. You can locally override this choice by setting the GCL_ANSI + environment variable to any string but "no" for the ANSI build, and to + "no" for the CLtL1 build, e.g. GCL_ANSI=t gcl27. The + flavor of the build in force will be reported in the initial startup + banner. + +Template: gcl27/default_gcl_prof +Type: boolean +_Description: Use the profiling build by default? + GCL now has optional support for profiling via gprof. Please see the + documentation + for si::gprof-start and si::gprof-quit for details. As this build is slower + than builds without gprof support, it is not recommended for final production use. + You can locally override the default choice made here + by setting the + GCL_PROF environment variable to any non-empty string for profiling + support, and to the empty string for the more optimized builds, e.g. + GCL_PROF=t gcl27. If profiling is enabled, this will be reported in + the initial startup banner. diff --git a/debian/in.gcl-clc.sh b/debian/in.gcl-clc.sh new file mode 100644 index 00000000..e91b6473 --- /dev/null +++ b/debian/in.gcl-clc.sh @@ -0,0 +1,146 @@ +#!/bin/sh + +progname=$(basename $0) +clc_src=/usr/share/common-lisp/source + +if test ! -f $clc_src/common-lisp-controller/common-lisp-controller.lisp ; then + echo "Cannot find common-lisp-controller." 1>&2 + echo "Please report this as a bug." 1>&2 + exit 1 +fi + +export GCL_ANSI=true +gcl_bin=/usr/bin/gcl@EXT@ # is better than $(which gcl) + +command=$1 +shift + +build_error() +{ + echo "Error building $1" 1>&2 + exit 1 +} + +if [ "$command" = "make-user-image" ] ; then + echo $progname Building image with $1 ... + if test ! -r $1; then + echo "Trying to make user image: Cannot access file $1" 1>&2 + exit 1 + fi + + $gcl_bin <&2 + exit 1 + fi + + case $command in + rebuild) + while test -x $gcl_bin -a -n "$1" + do + echo $progname Rebuilding $1 ... + echo ' + (setq *compile-print* t) + (setq *compile-verbose* t) + (setq *load-verbose* t) + (setq *require-verbose* t) + (ignore-errors (clc:compile-library (quote '"$1"')) + (lisp:quit 0)) + (lisp:quit 1) + ' | $gcl_bin || build_error $1 + shift + done + ;; + + remove) + while test -n "$1" + do + echo $progname Removing $1 + rm -rf "${gcl_clc}$1" + shift + done + ;; + + install-clc) + if ! [ -e /etc/default/$(basename $gcl_bin) ] ; then + echo $(basename $gcl_bin) not configured, aborting + exit 5 + fi + echo $progname Uninstalling clc image and purging object cache ... + test -x $gcl_bin || { + echo "Cannot install as there is no GCL" + exit -1 + } + rm -rf $gcl_clc + mkdir -p $gcl_clc +# chown cl-builder.cl-builder $gcl_clc + + rm -f $image + + echo $progname Installing clc as $image ... + if test -x $gcl_bin; then + $gcl_bin < /dev/null 2>&1 || \ + echo "$progname: Unknown command '$command'" 1>&2 + echo "Usage: $progname " 1>&2 + echo "Where is one of:" 1>&2 + echo " install-clc, remove-clc," 1>&2 + echo " rebuild *, remove *," 1>&2 + echo " or make-user-image " 1>&2 + echo "And is a cl-debpkg (e.g. cl-rt)" 1>&2 + echo " with a defsystem/asdf definition." 1>&2 + exit 1 + ;; + esac + +done + +exit 0 diff --git a/debian/in.gcl-doc.README.Debian b/debian/in.gcl-doc.README.Debian new file mode 100644 index 00000000..b8d01a66 --- /dev/null +++ b/debian/in.gcl-doc.README.Debian @@ -0,0 +1,9 @@ +New in 2.6.2 +------------ + +The gcl.texi files and the resulting html, info, and pdf outputs have +been removed pending an enquiry into the copyright and license status +of the dpANS documents upon which they are presumably based. + + + -- Camm Maguire , Fri, 9 May 2014 19:08:59 +0000 diff --git a/debian/in.gcl-doc.doc-base.main b/debian/in.gcl-doc.doc-base.main new file mode 100644 index 00000000..fa8c8695 --- /dev/null +++ b/debian/in.gcl-doc.doc-base.main @@ -0,0 +1,15 @@ +Document: gcl@EXT@-doc +Title: GNU Common Lisp Documentation +Author: W. Schelter +Abstract: A Common Lisp compiler and interpreter based on C +Section: Programming + +Format: DVI +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@.dvi.gz + +Format: PDF +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@.pdf.gz + +Format: HTML +Index: /usr/share/doc/gcl@EXT@/gcl@EXT@.html/index.html +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@.html/*.html diff --git a/debian/in.gcl-doc.doc-base.si b/debian/in.gcl-doc.doc-base.si new file mode 100644 index 00000000..7760ae1f --- /dev/null +++ b/debian/in.gcl-doc.doc-base.si @@ -0,0 +1,15 @@ +Document: gcl@EXT@-si-doc +Title: GNU Common Lisp Documentation -- System Internals +Author: W. Schelter +Abstract: Documentation on GCL-specific Lisp system functions +Section: Programming + +Format: DVI +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.dvi.gz + +Format: PDF +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.pdf.gz + +Format: HTML +Index: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.html/index.html +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-si.html/*.html diff --git a/debian/in.gcl-doc.doc-base.xgcl b/debian/in.gcl-doc.doc-base.xgcl new file mode 100644 index 00000000..447671a5 --- /dev/null +++ b/debian/in.gcl-doc.doc-base.xgcl @@ -0,0 +1,15 @@ +Document: gcl@EXT@-xgcl-doc +Title: GNU Common Lisp Documentation -- System Internals +Author: W. Schelter +Abstract: Documentation on GCL-specific Lisp system functions +Section: Programming + +Format: DVI +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.dvi.gz + +Format: PDF +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.pdf.gz + +Format: HTML +Index: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.html/index.html +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.html/*.html diff --git a/debian/in.gcl-doc.docs b/debian/in.gcl-doc.docs new file mode 100644 index 00000000..e845566c --- /dev/null +++ b/debian/in.gcl-doc.docs @@ -0,0 +1 @@ +README diff --git a/debian/in.gcl-doc.info b/debian/in.gcl-doc.info new file mode 100644 index 00000000..9b70ccb6 --- /dev/null +++ b/debian/in.gcl-doc.info @@ -0,0 +1,3 @@ +debian/tmp/usr/share/info/gcl@EXT@-si.info* +debian/tmp/usr/share/info/gcl@EXT@.info* +debian/tmp/usr/share/info/gcl@EXT@-dwdoc.info* diff --git a/debian/in.gcl-doc.install b/debian/in.gcl-doc.install new file mode 100644 index 00000000..b7b65aec --- /dev/null +++ b/debian/in.gcl-doc.install @@ -0,0 +1,9 @@ +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@.dvi +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@.html +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@.pdf +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-si.dvi +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-si.html +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-si.pdf +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.dvi +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.html +debian/tmp/usr/share/doc/gcl@EXT@/gcl@EXT@-dwdoc.pdf diff --git a/debian/in.gcl-tk-doc.doc-base.tk b/debian/in.gcl-tk-doc.doc-base.tk new file mode 100644 index 00000000..880e51f4 --- /dev/null +++ b/debian/in.gcl-tk-doc.doc-base.tk @@ -0,0 +1,15 @@ +Document: gcl@EXT@-tk-doc +Title: GNU Common Lisp Tk Interface Documentation +Author: W. Schelter +Abstract: Documentation for Graphical Interface to GCL using TCL/Tk +Section: Programming + +Format: DVI +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk*.dvi.gz + +Format: PDF +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk*.pdf.gz + +Format: HTML +Index: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk.html/index.html +Files: /usr/share/doc/gcl@EXT@/gcl@EXT@-tk.html/*.html diff --git a/debian/in.gcl-tk-doc.info b/debian/in.gcl-tk-doc.info new file mode 100644 index 00000000..a46a498d --- /dev/null +++ b/debian/in.gcl-tk-doc.info @@ -0,0 +1 @@ +debian/tmp/usr/share/info/gcl@EXT@-tk.info* diff --git a/debian/in.gcl-tk-doc.install b/debian/in.gcl-tk-doc.install new file mode 100644 index 00000000..82087dac --- /dev/null +++ b/debian/in.gcl-tk-doc.install @@ -0,0 +1,4 @@ +debian/tmp/usr/share/doc/gcl@EXT@/gcl27-tk.dvi +debian/tmp/usr/share/doc/gcl@EXT@/gcl27-tk.html +debian/tmp/usr/share/doc/gcl@EXT@/gcl27-tk.pdf +debian/tmp/usr/share/doc/gcl@EXT@/gcl-tk diff --git a/debian/in.gcl-tk.install b/debian/in.gcl-tk.install new file mode 100644 index 00000000..e7adf46b --- /dev/null +++ b/debian/in.gcl-tk.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/gcl-@VERS@/gcl-tk diff --git a/debian/in.gcl-tk.lintian-overrides b/debian/in.gcl-tk.lintian-overrides new file mode 100644 index 00000000..3f007553 --- /dev/null +++ b/debian/in.gcl-tk.lintian-overrides @@ -0,0 +1,2 @@ +# FIXME +gcl@EXT@-tk: hardening-no-pie [usr/lib/gcl-@VERS@/gcl-tk/gcltkaux] diff --git a/debian/in.gcl.1 b/debian/in.gcl.1 new file mode 100644 index 00000000..5f92f04f --- /dev/null +++ b/debian/in.gcl.1 @@ -0,0 +1,242 @@ +.TH GCL 1L "17 March 1997" +.SH NAME +gcl@EXT@ \- GCL Common Lisp interpreter/compiler +.SH SYNOPSIS +.B gcl@EXT@ +[ +.B options +] + +.SH DESCRIPTION + +The program +.I gcl@EXT@ +is an implementation of a subset of the Common Lisp Ansi standard. +It is written in C and in Common Lisp, and is highly portable. It +includes those features in the original definition of Common Lisp, +(Guy Steele version 1.), as well as some features from the proposed +new standard. +.LP +The best documentation is available in +.I texinfo/info +form, with there being three groups of information. +.I gcl@EXT@-si +for basic common lisp descriptions, and features unique to +.I gcl@EXT@ +The +.I gcl@EXT@-tk +info refers to the connection with +.I tk +window system, allowing all the power of the +.I tcl/tk +interaction system to be used from lisp. +The third info file +.I gcl@EXT@ +details the Ansi standard for common lisp, to which this subset +tries to adhere. It is highly recommended to write programs, +which will be in the intersection of gcl and ansi common lisp. +Unfortunately the Ansi standard is huge, and will require a substantial +effort, and increase in the size of gcl, to include all of it. +.LP +When +.I gcl@EXT@ +is invoked from the shell, the variable +.I si::*command-args* +is set to the list of command line arguments. +Various +.I options +are understood: +.TP +.BR \-eval\ command +.RB +Call read and then eval on the +.I command passed in. +.TP +.BR \-load\ pathname +.RB +Load the file whose +.I pathname +is specified after +.BR \-load . +.TP +.B \-f +Replace si::*command-args* by the the list starting after +.BR \-f . +Open the file following +.BR \-f for input, skip the first line, and +then read and eval the rest of the forms in the file. This can +be used as with the shells to write small shell programs: + +.LP +.br +#!/usr/local/bin/gcl.exe -f +.br +(format t "hello world ~a~%" (nth 1 si::*command-args*)) + +.BR +The value +.I si::*command-args* +will have the appropriate value. +Thus if the above 2 line file is made executable and called +.I foo +then + +.LP +.LP +.br +tutorial% foo billy +.br +hello world billy + +.BR +NOTE: On many systems (eg SunOs) the first line of an executable +script file such as: +.BR +#!/usr/local/bin/gcl.exe -f +only reads the first 32 characters! So if your pathname where +the executable together with the '-f' amount to more than 32 +characters the file will not be recognized. Also the executable +must be the actual large binary file, [or a link to it], and not +just a +.I /bin/sh +script. In latter case the +.I /bin/sh +interpreter would get invoked on the file. + +Alternately one could invoke the file +.I foo +without making it +executable: +.LP +.LP +.br +tutorial% gcl@EXT@ -f foo "from bill" +.br +hello world from bill + +.TP +.B \-batch +.RB +Do not enter the command print loop. Useful if the other command +line arguments do something. Do not print the License and +acknowledgement information. Note if your program does print any +License information, it must print the GCL header information also. + +.TP +.B \-dir +.RB +Directory where the executable binary that is running is located. +Needed by save and friends. This gets set as +si::*system-directory* + +.TP +.B \-libdir +.RB +.BR \-libdir +.I /d/wfs/gcl-2.0/ +.RB + +would mean that the files like gcl-tk/tk.o would be found by +concatting the path to the libdir path, ie in +.RB /d/wfs/gcl-2.0/gcl-tk/tk.o + +.TP +.B \-compile +.RB +Invoke the compiler on the filename following +.BR \-compile. +Other flags affect compilation. + +.TP +.B \-o-file +.RB +If nil follows +.BR \-o-file +then do not produce an +.I .o +file. + +.TP +.B \-c-file +.RB +If +.BR \-c-file +is specified, leave the intermediate +.I .c +file there. + +.TP +.B \-h-file +.RB If +.BR \-h-file +is specified, leave the intermediate +.I .h +file there. + +.TP +.B \-data-file +.RB If +.BR \-data-file +is specified, leave the intermediate +.I .data +file +there. + +.TP +.B \-system-p +.RB If +.BR \-system-p +is specified then invoke +.I compile-file +with the +.I :system-p t +keyword argument, meaning that the C init function +will bear a name based on the name of the file, so that it may be +invoked by name by C code. + + + + +This GNU package should not be confused with the proprietary program +distributed by FRANZ, Inc. Nor should it be confused with any public +domain or proprietary lisp system. + +For anything other than program development, use of the lisp compiler +is strongly recommended in preference to use of the interpreter, due +to much higher speed. +.\".LP +.\"This program may be used in conjunction with the UCSF +.\".I batchqueue +.\"system. +.\".SH "LOCAL ACCESS" +.\"Locally, access to all L\s-2ISP\s0 systems is made through a shared +.\"interactive front-end which assumes that the job is be run in batch mode +.\"unless the \fB\-i\fP option is activated, which starts an interactive session. +.\"Interactive sessions are limited to 30 cpu minutes. +.SH FILES +.TP +\fI/usr/bin/gcl +executable shell script wrapper +.TP +\fI/usr/lib/gcl-version/unixport/saved[_flavor]_gcl +executable lisp images +.SH "SEE ALSO" +.sp +\fICommon LISP: The Language\fP, Guy L. Steele, Jr., Digital Press, Bedford, MA, +1984. +.sp +\fICommon LISPcraft\fP, Robert Wilensky, W. W. Norton & Co., New York, 1984. +.SH AUTHORS + +The GCL system contains C and Lisp source files to build a Common Lisp +sytem. +CGL is derived from Kyoto Common LISP (\fIkcl\fP), +which was written in 1984 by T. Yuasa and M. Hagiya +(working under Professor R. Nakajima at the Research +Institute for Mathematical Sciences, Kyoto University). +The AKCL system work was begun in 1987 by +William Schelter at the University of Texas, Austin, and continued through 1994. +In 1994 AKCL was released as GCL (GNU Common Lisp) under the +GNU public library license. +.\" + diff --git a/debian/in.gcl.config b/debian/in.gcl.config new file mode 100644 index 00000000..3893a503 --- /dev/null +++ b/debian/in.gcl.config @@ -0,0 +1,21 @@ +#!/bin/sh +CONFIGFILE=/etc/default/gcl@EXT@ +set -e +. /usr/share/debconf/confmodule + +db_set gcl@EXT@/default_gcl_ansi true + +# Load config file, if it exists. +if [ -e $CONFIGFILE ]; then + . $CONFIGFILE || true + + # Store values from config file into + # debconf db. + db_set gcl@EXT@/default_gcl_ansi $DEFAULT_GCL_ANSI + db_set gcl@EXT@/default_gcl_prof $DEFAULT_GCL_PROF +fi + +# Ask questions. +db_input medium gcl@EXT@/default_gcl_ansi || true +db_input medium gcl@EXT@/default_gcl_prof || true +db_go || true diff --git a/debian/in.gcl.docs b/debian/in.gcl.docs new file mode 100644 index 00000000..32ace0ea --- /dev/null +++ b/debian/in.gcl.docs @@ -0,0 +1 @@ +sb_ansi-tests/test_results diff --git a/debian/in.gcl.install b/debian/in.gcl.install new file mode 100644 index 00000000..b46b414f --- /dev/null +++ b/debian/in.gcl.install @@ -0,0 +1,9 @@ +debian/tmp/usr/bin +debian/tmp/usr/share/man +debian/tmp/usr/lib/gcl-@VERS@/clcs +debian/tmp/usr/lib/gcl-@VERS@/cmpnew +debian/tmp/usr/lib/gcl-@VERS@/h +debian/tmp/usr/lib/gcl-@VERS@/lsp +debian/tmp/usr/lib/gcl-@VERS@/pcl +debian/tmp/usr/lib/gcl-@VERS@/unixport +debian/tmp/usr/lib/gcl-@VERS@/xgcl-2 diff --git a/debian/in.gcl.lintian-overrides b/debian/in.gcl.lintian-overrides new file mode 100644 index 00000000..cfc4ddc8 --- /dev/null +++ b/debian/in.gcl.lintian-overrides @@ -0,0 +1,10 @@ +gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl_gprof] +gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_gcl_gprof] +gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl] +gcl@EXT@: binary-compiled-with-profiling-enabled [usr/lib/gcl-@VERS@/unixport/saved_gcl] +gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl_gprof] +gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_gcl_gprof] +gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_ansi_gcl] +gcl@EXT@: hardening-no-pie [usr/lib/gcl-@VERS@/unixport/saved_gcl] +gcl@EXT@: hardening-no-relro [usr/lib/gcl-@VERS@/unixport/libboot.so] +gcl@EXT@: shared-library-lacks-prerequisites [usr/lib/gcl-@VERS@/unixport/libboot.so] diff --git a/debian/in.gcl.manpages b/debian/in.gcl.manpages new file mode 100644 index 00000000..0b22534b --- /dev/null +++ b/debian/in.gcl.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/gcl@EXT@.1 diff --git a/debian/in.gcl.postinst b/debian/in.gcl.postinst new file mode 100644 index 00000000..917588b8 --- /dev/null +++ b/debian/in.gcl.postinst @@ -0,0 +1,42 @@ +#!/bin/sh +case "$1" in + configure) + +# CONFIGFILE=$(tempfile -m 644) + CONFIGFILE=$(mktemp) + chmod 644 $CONFIGFILE + set -e + . /usr/share/debconf/confmodule + + if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ] ; then + + db_get gcl@EXT@/default_gcl_ansi + + if [ "$RET" = "true" ] ; then + DEFAULT_GCL_ANSI=t + else + DEFAULT_GCL_ANSI= + fi + + db_get gcl@EXT@/default_gcl_prof + + if [ "$RET" = "true" ] ; then + DEFAULT_GCL_PROF=y + else + DEFAULT_GCL_PROF= + fi + + echo "DEFAULT_GCL_ANSI=$DEFAULT_GCL_ANSI" >> $CONFIGFILE + echo "DEFAULT_GCL_PROF=$DEFAULT_GCL_PROF" >> $CONFIGFILE + + fi + + ucf --debconf-ok $CONFIGFILE /etc/default/gcl@EXT@ + ucfr gcl@EXT@ /etc/default/gcl@EXT@ + +# chmod 644 /etc/default/gcl@EXT@ + +esac + +#DEBHELPER# + diff --git a/debian/in.gcl.postrm b/debian/in.gcl.postrm new file mode 100644 index 00000000..5360f7dc --- /dev/null +++ b/debian/in.gcl.postrm @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +case "$1" in + purge) + for ext in '~' '%' .bak .ucf-new .ucf-old .ucf-dist; do + rm -f /etc/default/gcl@EXT@$ext + done + + rm -f /etc/default/gcl@EXT@ + + if which ucf >/dev/null; then + ucf --purge /etc/default/gcl@EXT@ + fi + if which ucfr >/dev/null; then + ucfr --purge gcl@EXT@ /etc/default/gcl@EXT@ + fi + ;; +esac + +#DEBHELPER# diff --git a/debian/in.gcl.templates b/debian/in.gcl.templates new file mode 100644 index 00000000..ccbc1340 --- /dev/null +++ b/debian/in.gcl.templates @@ -0,0 +1,26 @@ +Template: gcl@EXT@/default_gcl_ansi +Type: boolean +_Description: Use the work-in-progress ANSI build by default? + GCL is in the process of providing an ANSI compliant image in addition to + its traditional CLtL1 image still in production use. Please see the + README.Debian file for a brief description of these terms. Setting this + variable will determine which image you will use by default on executing + 'gcl@EXT@'. You can locally override this choice by setting the GCL_ANSI + environment variable to any string but "no" for the ANSI build, and to + "no" for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The + flavor of the build in force will be reported in the initial startup + banner. + +Template: gcl@EXT@/default_gcl_prof +Type: boolean +_Description: Use the profiling build by default? + GCL now has optional support for profiling via gprof. Please see the + documentation + for si::gprof-start and si::gprof-quit for details. As this build is slower + than builds without gprof support, it is not recommended for final production use. + You can locally override the default choice made here + by setting the + GCL_PROF environment variable to any non-empty string for profiling + support, and to the empty string for the more optimized builds, e.g. + GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in + the initial startup banner. diff --git a/debian/msb b/debian/msb new file mode 100644 index 00000000..6b165aed --- /dev/null +++ b/debian/msb @@ -0,0 +1,31 @@ +#!/bin/bash +set -x +export TMPDIR=$HOME/tmp +if [ "$4" = "" ] ; then S="b" ; else S="e"; fi +D="r$2_$3_$S" + +mkdir -p $TMPDIR/$D + +E="" +if [ "$S" = "e" ] ; then +# mkdir $TMPDIR/shuf-$D +# disorderfs --reverse-dirents=yes "$TMPDIR/$D" "$TMPDIR/shuf-$D" + sbuild --chroot-mode=unshare \ + -d unstable \ + --build-path=/build/gcl-$D/ \ + --jobs=$3 \ + --post-build-commands="%SBUILD_CHROOT_EXEC tar -c -C /build/gcl-$D/ . | tar -x -C $TMPDIR/$D/" \ + --chroot-setup-commands="echo 'TZ=Asia/Tokyo; export TZ' >> /etc/environment" \ + --chroot-setup-commands="echo 'LC_ALL=fr_CH.UTF-8; export LC_ALL' >> /etc/environment" \ + --chroot-setup-commands="echo 'LANG=fr_CH.UTF-8; export LANG' >> /etc/environment" \ + --chroot-setup-commands="echo 'USER=nobody; export USER' >> /etc/environment" \ + --chroot-setup-commands="echo 'LOGNAME=nobody; export LOGNAME' >> /etc/environment" \ + $1 +else + sbuild --chroot-mode=unshare \ + -d unstable \ + --build-path=/build/gcl-$D/ \ + --jobs=$3 \ + --post-build-commands="%SBUILD_CHROOT_EXEC tar -c -C /build/gcl-$D/ . | tar -x -C $TMPDIR/$D/" \ + $1 +fi diff --git a/debian/msbe b/debian/msbe new file mode 100644 index 00000000..de3e9e93 --- /dev/null +++ b/debian/msbe @@ -0,0 +1,8 @@ +export SOURCE_DATE_EPOCH=$(dpkg-parsechangelog -S Date | date -f - +%s) +export DEB_BUILD_OPTIONS="reproducible=+all" +export FORCE_SOURCE_DATE=1 +export LC_ALL=C.UTF-8 +export LANG=C.UTF-8 +export TZ=UTC +export USER=nobody +export LOGNAME=nobody diff --git a/debian/old.in.gcl-doc.doc-base.main b/debian/old.in.gcl-doc.doc-base.main new file mode 100644 index 00000000..2d6f3d12 --- /dev/null +++ b/debian/old.in.gcl-doc.doc-base.main @@ -0,0 +1,12 @@ +Document: gcl@EXT@-doc +Title: GNU Common Lisp Documentation +Author: W. Schelter +Abstract: A Common Lisp compiler and interpreter based on C +Section: Apps/Programming + +Format: DVI +Files: /usr/share/doc/gcl@EXT@-doc/gcl.dvi.gz /usr/share/doc/gcl@EXT@-doc/gcl.dvi + +Format: HTML +Index: /usr/share/doc/gcl@EXT@-doc/gcl/index.html +Files: /usr/share/doc/gcl@EXT@-doc/gcl/*.html diff --git a/debian/patches/Version_2_7_2ore3 b/debian/patches/Version_2_7_2ore3 new file mode 100644 index 00000000..5995e41f --- /dev/null +++ b/debian/patches/Version_2_7_2ore3 @@ -0,0 +1,1172 @@ +Description: Update to git tag Version_2_7_2pre3 + Git tag update +Forwarded: not-needed +Author: Camm Maguire + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -23,7 +23,7 @@ gcltkdocdir=$(docdir)/gcl-tk + + # primaries + +-noinst_PROGRAMS=bin/dpp o/grab_defs ++noinst_PROGRAMS=bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) + noinst_LIBRARIES=lib/libbase_gcl.a + + my_unixport_PROGRAMS=unixport/saved_gcl unixport/saved_ansi_gcl +@@ -31,7 +31,7 @@ my_unixport_LIBRARIES=unixport/libgcl.a + bin_SCRIPTS=bin/gcl + check_SCRIPTS=sb_ansi-tests/test_results sb_bench/timing_results + info_TEXINFOS=info/gcl.texi info/gcl-si.texi +-my_unixport_DATA=$(addprefix unixport/,init_raw.lsp gcl.script libboot.so \ ++my_unixport_DATA=$(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ + gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) + my_h_DATA=h/cmpinclude.h + my_cmpnew_DATA=sb_cmpnew/gcl_collectfn.o cmpnew/gcl_lfun_list.lsp cmpnew/gcl_cmpopt.lsp +@@ -48,6 +48,12 @@ dist_noinst_DATA= + + # conditionals + ++if AMM_LIBBOOT ++LIBBOOTSO=unixport/libboot.so ++else ++BOOT_C=o/boot.c ++endif ++ + if AMM_GPROF + + LIBGPROF=lib/libgprof.a +@@ -165,7 +171,7 @@ endif + BUILT_SOURCES=$(BUILT_H) $(BUILT_C) + CLEANFILES=$(BUILT_SOURCES) $(INI_FILES) o/boot.ini + +-lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) ++lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C) + nodist_lib_libbase_gcl_a_SOURCES=$(BUILT_C) + lib_libgprof_a_SOURCES=o/gprof.c + lib_libgprof_a_CFLAGS=$(AM_CFLAGS) -fno-omit-frame-pointer -pg +@@ -237,7 +243,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl + unixport/saved_%: unixport/raw_% # rebuild these only when out of date + + unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ +- unixport/libboot.so unixport/init_raw.lsp ++ $(LIBBOOTSO) unixport/init_raw.lsp + rm -rf sb_$* # FIXME sandbox ugliness for parallel builds + mkdir sb_$* + cd sb_$* && \ +@@ -245,14 +251,17 @@ unixport/saved_%: | unixport/raw_% unixp + ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \ + mkdir h && \ + ln -snf ../../h/cmpinclude.h h/ && \ +- echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \ ++ touch prof_init.lsp && \ ++ ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ ++ echo "(system:save-system \"../$@\")" | \ ++ cat ../unixport/init_raw.lsp prof_init.lsp - | \ + GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ + ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ + rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue + rm -rf sb_$* + +-unixport/raw_%: unixport/lib%.a +- $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro ++unixport/raw_%: unixport/lib%.a $(FF) $(LF) ++ $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ + unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp +@@ -464,15 +473,15 @@ o/boot.h: %.h: %.ini + cat $< >> $@ + echo '}' >> $@ + +-CLEANFILES+=unixport/libboot.so +-unixport/libboot.so: o/boot.c o/boot.h ++CLEANFILES+=$(LIBBOOTSO) ++$(LIBBOOTSO): o/boot.c o/boot.h + $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ + -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ + + o/boot.ini: CPPFLAGS += -DNO_BOOT_H + # parallel builds can only have one target accessing an intermediate file + # solved with BUILT_SOURCES +-o/%.ini: o/%.c | o/grab_defs ++o/%.ini: o/%.c | o/grab_defs$(EXEEXT) + @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) + @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ + @rm -f new_$(@F) +@@ -540,8 +549,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_co + [ -d $(@D) ] || mkdir -p $(@D) + $(word 1,$|) -compile $< -o $@ + +-%.c: %.d | bin/dpp +- bin/dpp $< $@ ++%.c: %.d | bin/dpp$(EXEEXT) ++ $| $< $@ + + gcl-tk/demos gcl-tk $(MY_DIRS): % : + [ -d $@ ] || mkdir -p $@ +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -93,7 +93,6 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) + my_unixport_PROGRAMS = unixport/saved_gcl$(EXEEXT) \ + unixport/saved_ansi_gcl$(EXEEXT) $(am__EXEEXT_1) + @AMM_GPROF_TRUE@am__append_1 = $(LIBGPROF) lib/libbase_gcl_gprof.a +@@ -176,6 +175,56 @@ am__v_AR_1 = + lib_libbase_gcl_a_AR = $(AR) $(ARFLAGS) + lib_libbase_gcl_a_RANLIB = $(RANLIB) + lib_libbase_gcl_a_LIBADD = ++am__lib_libbase_gcl_a_SOURCES_DIST = o/typespec.c o/alloc.c o/gbc.c \ ++ o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ ++ o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ ++ o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ ++ o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ ++ o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ ++ o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ ++ o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ ++ o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ ++ o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ ++ o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ ++ o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ ++ o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ ++ o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ ++ h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ ++ h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ ++ h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ ++ h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ ++ h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ ++ h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ ++ h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ ++ o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ ++ h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ ++ h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ ++ h/cmponly_last.h h/elf32_armhf_reloc.h \ ++ h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ ++ h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ ++ h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ ++ h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ ++ h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ ++ h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ ++ h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ ++ h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \ ++ h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \ ++ h/elf64_loongarch64_reloc.h \ ++ h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \ ++ h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \ ++ h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \ ++ h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \ ++ h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \ ++ h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \ ++ h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \ ++ h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \ ++ h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \ ++ h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \ ++ h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \ ++ h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \ ++ h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \ ++ h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \ ++ h/solaris-i386.h o/boot.c + am__dirstamp = $(am__leading_dot)dirstamp + am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \ + o/bitop.$(OBJEXT) o/main.$(OBJEXT) o/eval.$(OBJEXT) \ +@@ -202,20 +251,71 @@ am__objects_1 = o/typespec.$(OBJEXT) o/a + o/bzero.$(OBJEXT) o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \ + o/mapfun.$(OBJEXT) + am__objects_2 = ++@AMM_LIBBOOT_FALSE@am__objects_3 = o/boot.$(OBJEXT) + am_lib_libbase_gcl_a_OBJECTS = $(am__objects_1) $(am__objects_2) \ +- $(am__objects_2) $(am__objects_2) +-am__objects_3 = o/character.$(OBJEXT) o/file.$(OBJEXT) \ ++ $(am__objects_2) $(am__objects_2) $(am__objects_3) ++am__objects_4 = o/character.$(OBJEXT) o/file.$(OBJEXT) \ + o/gcl_readline.$(OBJEXT) o/hash.$(OBJEXT) o/list.$(OBJEXT) \ + o/package.$(OBJEXT) o/pathname.$(OBJEXT) o/print.$(OBJEXT) \ + o/read.$(OBJEXT) o/sequence.$(OBJEXT) o/string.$(OBJEXT) \ + o/symbol.$(OBJEXT) o/new_init.$(OBJEXT) +-nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_3) ++nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_4) + lib_libbase_gcl_a_OBJECTS = $(am_lib_libbase_gcl_a_OBJECTS) \ + $(nodist_lib_libbase_gcl_a_OBJECTS) + lib_libbase_gcl_gprof_a_AR = $(AR) $(ARFLAGS) + lib_libbase_gcl_gprof_a_RANLIB = $(RANLIB) + lib_libbase_gcl_gprof_a_LIBADD = +-am__objects_4 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ ++am__lib_libbase_gcl_gprof_a_SOURCES_DIST = o/typespec.c o/alloc.c \ ++ o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ ++ o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ ++ o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ ++ o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ ++ o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ ++ o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ ++ o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ ++ o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ ++ o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ ++ o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ ++ o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ ++ o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ ++ o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ ++ h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ ++ h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ ++ h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ ++ h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ ++ h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ ++ h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ ++ h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ ++ o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ ++ h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ ++ h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ ++ h/cmponly_last.h h/elf32_armhf_reloc.h \ ++ h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ ++ h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ ++ h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ ++ h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ ++ h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ ++ h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ ++ h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ ++ h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \ ++ h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \ ++ h/elf64_loongarch64_reloc.h \ ++ h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \ ++ h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \ ++ h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \ ++ h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \ ++ h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \ ++ h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \ ++ h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \ ++ h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \ ++ h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \ ++ h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \ ++ h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \ ++ h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \ ++ h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \ ++ h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \ ++ h/solaris-i386.h o/boot.c o/gprof.c ++am__objects_5 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT) \ +@@ -281,11 +381,13 @@ am__objects_4 = o/lib_libbase_gcl_gprof_ + o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT) +-am__objects_5 = $(am__objects_4) $(am__objects_2) $(am__objects_2) \ +- $(am__objects_2) +-am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_5) \ ++@AMM_LIBBOOT_FALSE@am__objects_6 = \ ++@AMM_LIBBOOT_FALSE@ o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT) ++am__objects_7 = $(am__objects_5) $(am__objects_2) $(am__objects_2) \ ++ $(am__objects_2) $(am__objects_6) ++am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7) \ + o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT) +-am__objects_6 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ ++am__objects_8 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-file.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-gcl_readline.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-hash.$(OBJEXT) \ +@@ -298,8 +400,8 @@ am__objects_6 = o/lib_libbase_gcl_gprof_ + o/lib_libbase_gcl_gprof_a-string.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-symbol.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT) +-am__objects_7 = $(am__objects_6) +-nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7) ++am__objects_9 = $(am__objects_8) ++nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_9) + lib_libbase_gcl_gprof_a_OBJECTS = \ + $(am_lib_libbase_gcl_gprof_a_OBJECTS) \ + $(nodist_lib_libbase_gcl_gprof_a_OBJECTS) +@@ -311,20 +413,20 @@ lib_libgprof_a_OBJECTS = $(am_lib_libgpr + lib_libxgcl_a_AR = $(AR) $(ARFLAGS) + lib_libxgcl_a_RANLIB = $(RANLIB) + lib_libxgcl_a_LIBADD = +-am__objects_8 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \ ++am__objects_10 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \ + xgcl-2/XStruct-2.$(OBJEXT) xgcl-2/XStruct-4.$(OBJEXT) \ + xgcl-2/Xutil-2.$(OBJEXT) +-am_lib_libxgcl_a_OBJECTS = $(am__objects_8) ++am_lib_libxgcl_a_OBJECTS = $(am__objects_10) + lib_libxgcl_a_OBJECTS = $(am_lib_libxgcl_a_OBJECTS) + lib_libxgcl_gprof_a_AR = $(AR) $(ARFLAGS) + lib_libxgcl_gprof_a_RANLIB = $(RANLIB) + lib_libxgcl_gprof_a_LIBADD = +-am__objects_9 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \ ++am__objects_11 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \ + xgcl-2/lib_libxgcl_gprof_a-general-c.$(OBJEXT) \ + xgcl-2/lib_libxgcl_gprof_a-XStruct-2.$(OBJEXT) \ + xgcl-2/lib_libxgcl_gprof_a-XStruct-4.$(OBJEXT) \ + xgcl-2/lib_libxgcl_gprof_a-Xutil-2.$(OBJEXT) +-am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_9) ++am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_11) + lib_libxgcl_gprof_a_OBJECTS = $(am_lib_libxgcl_gprof_a_OBJECTS) + unixport_libansi_gcl_a_AR = $(AR) $(ARFLAGS) + unixport_libansi_gcl_a_RANLIB = $(RANLIB) +@@ -351,10 +453,10 @@ unixport_libgcl_gprof_a_OBJECTS = \ + bin_dpp_SOURCES = bin/dpp.c + bin_dpp_OBJECTS = bin/dpp.$(OBJEXT) + bin_dpp_LDADD = $(LDADD) +-am__objects_10 = gcl-tk/gcltkaux-guis.$(OBJEXT) \ ++am__objects_12 = gcl-tk/gcltkaux-guis.$(OBJEXT) \ + gcl-tk/gcltkaux-tkAppInit.$(OBJEXT) \ + gcl-tk/gcltkaux-tkMain.$(OBJEXT) +-am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_10) ++am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_12) + gcl_tk_gcltkaux_OBJECTS = $(am_gcl_tk_gcltkaux_OBJECTS) + am__DEPENDENCIES_1 = + gcl_tk_gcltkaux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ +@@ -400,8 +502,8 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + o/$(DEPDIR)/array.Po o/$(DEPDIR)/assignment.Po \ + o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bcmp.Po o/$(DEPDIR)/bcopy.Po \ + o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po o/$(DEPDIR)/bind.Po \ +- o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/bzero.Po \ +- o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ ++ o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \ ++ o/$(DEPDIR)/bzero.Po o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ + o/$(DEPDIR)/character.Po o/$(DEPDIR)/clxsocket.Po \ + o/$(DEPDIR)/cmpaux.Po o/$(DEPDIR)/conditional.Po \ + o/$(DEPDIR)/earith.Po o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \ +@@ -422,6 +524,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po \ ++ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po \ +@@ -554,9 +657,10 @@ SOURCES = $(lib_libbase_gcl_a_SOURCES) \ + $(unixport_saved_ansi_gcl_gprof_SOURCES) \ + $(unixport_saved_gcl_SOURCES) \ + $(unixport_saved_gcl_gprof_SOURCES) +-DIST_SOURCES = $(lib_libbase_gcl_a_SOURCES) \ +- $(lib_libbase_gcl_gprof_a_SOURCES) $(lib_libgprof_a_SOURCES) \ +- $(lib_libxgcl_a_SOURCES) $(lib_libxgcl_gprof_a_SOURCES) \ ++DIST_SOURCES = $(am__lib_libbase_gcl_a_SOURCES_DIST) \ ++ $(am__lib_libbase_gcl_gprof_a_SOURCES_DIST) \ ++ $(lib_libgprof_a_SOURCES) $(lib_libxgcl_a_SOURCES) \ ++ $(lib_libxgcl_gprof_a_SOURCES) \ + $(unixport_libansi_gcl_a_SOURCES) \ + $(unixport_libansi_gcl_gprof_a_SOURCES) \ + $(unixport_libgcl_a_SOURCES) \ +@@ -712,6 +816,7 @@ ETAGS = @ETAGS@ + EXEEXT = @EXEEXT@ + EXT = @EXT@ + EXTRA_LOBJS = @EXTRA_LOBJS@ ++FF = @FF@ + FINAL_CFLAGS = @FINAL_CFLAGS@ + GCL_CC = @GCL_CC@ + GMP = @GMP@ +@@ -731,6 +836,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ + LEADING_UNDERSCORE = @LEADING_UNDERSCORE@ ++LF = @LF@ + LIBOBJS = @LIBOBJS@ + LIBS = @LIBS@ + LI_CC = @LI_CC@ +@@ -854,6 +960,9 @@ my_cmpnewdir = $(my_libdir)/cmpnew + my_clcsdir = $(my_libdir)/clcs + xgcl2docdir = $(docdir)/xgcl-2 + gcltkdocdir = $(docdir)/gcl-tk ++ ++# primaries ++noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) + noinst_LIBRARIES = lib/libbase_gcl.a $(am__append_1) $(am__append_4) \ + $(am__append_7) + my_unixport_LIBRARIES = unixport/libgcl.a unixport/libansi_gcl.a \ +@@ -862,7 +971,7 @@ bin_SCRIPTS = bin/gcl + check_SCRIPTS = sb_ansi-tests/test_results sb_bench/timing_results + info_TEXINFOS = info/gcl.texi info/gcl-si.texi $(am__append_6) \ + $(am__append_9) +-my_unixport_DATA = $(addprefix unixport/,init_raw.lsp gcl.script libboot.so \ ++my_unixport_DATA = $(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ + gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) + + my_h_DATA = h/cmpinclude.h +@@ -879,6 +988,8 @@ lisp_DATA = elisp/add-default.el elisp/a + dist_noinst_DATA = $(am__append_5) $(am__append_8) + + # conditionals ++@AMM_LIBBOOT_TRUE@LIBBOOTSO = unixport/libboot.so ++@AMM_LIBBOOT_FALSE@BOOT_C = o/boot.c + @AMM_GPROF_TRUE@LIBGPROF = lib/libgprof.a + + #it would be nice someday to sandbox xgcl-2 and gcl-tk builds in tmpdirs +@@ -968,9 +1079,8 @@ BUILT_SOURCES = $(BUILT_H) $(BUILT_C) + CLEANFILES = $(BUILT_SOURCES) $(INI_FILES) o/boot.ini $(addprefix \ + unixport/raw_,gcl gcl_gprof ansi_gcl ansi_gcl_gprof) \ + h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h \ +- unixport/libboot.so gcl-tk/demos/index.lsp \ +- gcl-tk/demos/gc-monitor.o +-lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) ++ $(LIBBOOTSO) gcl-tk/demos/index.lsp gcl-tk/demos/gc-monitor.o ++lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C) + nodist_lib_libbase_gcl_a_SOURCES = $(BUILT_C) + lib_libgprof_a_SOURCES = o/gprof.c + lib_libgprof_a_CFLAGS = $(AM_CFLAGS) -fno-omit-frame-pointer -pg +@@ -1293,6 +1403,7 @@ o/bzero.$(OBJEXT): o/$(am__dirstamp) o/$ + o/user_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/user_match.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/mapfun.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) ++o/boot.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/character.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/file.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/gcl_readline.$(OBJEXT): o/$(am__dirstamp) \ +@@ -1447,6 +1558,8 @@ o/lib_libbase_gcl_gprof_a-user_match.$(O + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) ++o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT): o/$(am__dirstamp) \ ++ o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-character.$(OBJEXT): o/$(am__dirstamp) \ +@@ -1654,6 +1767,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bind.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bitop.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/block.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/boot.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bzero.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/catch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cfun.Po@am__quote@ # am--include-marker +@@ -1688,6 +1802,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po@am__quote@ # am--include-marker +@@ -2761,6 +2876,20 @@ o/lib_libbase_gcl_gprof_a-mapfun.obj: o/ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-mapfun.obj `if test -f 'o/mapfun.c'; then $(CYGPATH_W) 'o/mapfun.c'; else $(CYGPATH_W) '$(srcdir)/o/mapfun.c'; fi` + ++o/lib_libbase_gcl_gprof_a-boot.o: o/boot.c ++@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c ++@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.o' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c ++ ++o/lib_libbase_gcl_gprof_a-boot.obj: o/boot.c ++@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi` ++@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.obj' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi` ++ + o/lib_libbase_gcl_gprof_a-gprof.o: o/gprof.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-gprof.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo -c -o o/lib_libbase_gcl_gprof_a-gprof.o `test -f 'o/gprof.c' || echo '$(srcdir)/'`o/gprof.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Po +@@ -3974,6 +4103,7 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/bind.Po + -rm -f o/$(DEPDIR)/bitop.Po + -rm -f o/$(DEPDIR)/block.Po ++ -rm -f o/$(DEPDIR)/boot.Po + -rm -f o/$(DEPDIR)/bzero.Po + -rm -f o/$(DEPDIR)/catch.Po + -rm -f o/$(DEPDIR)/cfun.Po +@@ -4008,6 +4138,7 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po ++ -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po +@@ -4294,6 +4425,7 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/bind.Po + -rm -f o/$(DEPDIR)/bitop.Po + -rm -f o/$(DEPDIR)/block.Po ++ -rm -f o/$(DEPDIR)/boot.Po + -rm -f o/$(DEPDIR)/bzero.Po + -rm -f o/$(DEPDIR)/catch.Po + -rm -f o/$(DEPDIR)/cfun.Po +@@ -4328,6 +4460,7 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po ++ -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po +@@ -4541,7 +4674,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl + unixport/saved_%: unixport/raw_% # rebuild these only when out of date + + unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ +- unixport/libboot.so unixport/init_raw.lsp ++ $(LIBBOOTSO) unixport/init_raw.lsp + rm -rf sb_$* # FIXME sandbox ugliness for parallel builds + mkdir sb_$* + cd sb_$* && \ +@@ -4549,14 +4682,17 @@ unixport/saved_%: | unixport/raw_% unixp + ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \ + mkdir h && \ + ln -snf ../../h/cmpinclude.h h/ && \ +- echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \ ++ touch prof_init.lsp && \ ++ ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ ++ echo "(system:save-system \"../$@\")" | \ ++ cat ../unixport/init_raw.lsp prof_init.lsp - | \ + GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ + ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ + rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue + rm -rf sb_$* + +-unixport/raw_%: unixport/lib%.a +- $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro ++unixport/raw_%: unixport/lib%.a $(FF) $(LF) ++ $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ + unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp +@@ -4754,14 +4890,14 @@ o/boot.h: %.h: %.ini + echo 'void gcl_init_boot(void){' >> $@ + cat $< >> $@ + echo '}' >> $@ +-unixport/libboot.so: o/boot.c o/boot.h ++$(LIBBOOTSO): o/boot.c o/boot.h + $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ + -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ + + o/boot.ini: CPPFLAGS += -DNO_BOOT_H + # parallel builds can only have one target accessing an intermediate file + # solved with BUILT_SOURCES +-o/%.ini: o/%.c | o/grab_defs ++o/%.ini: o/%.c | o/grab_defs$(EXEEXT) + @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) + @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ + @rm -f new_$(@F) +@@ -4824,8 +4960,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_co + [ -d $(@D) ] || mkdir -p $(@D) + $(word 1,$|) -compile $< -o $@ + +-%.c: %.d | bin/dpp +- bin/dpp $< $@ ++%.c: %.d | bin/dpp$(EXEEXT) ++ $| $< $@ + + gcl-tk/demos gcl-tk $(MY_DIRS): % : + [ -d $@ ] || mkdir -p $@ +--- gcl27-2.7.1.orig/bin/gcl.in ++++ gcl27-2.7.1/bin/gcl.in +@@ -5,13 +5,19 @@ VERS=@VERSION@ + + if [ -e /etc/default/gcl$EXT ] ; then + . /etc/default/gcl$EXT ; +- if ! set | grep -q -w GCL_ANSI ; then GCL_ANSI=$DEFAULT_GCL_ANSI ; fi ++ if ! set | grep -q -w GCL_ANSI ; then ++ if [ "$DEFAULT_GCL_ANSI" != "" ] ; then ++ GCL_ANSI="t" ; ++ else ++ GCL_ANSI="no" ; ++ fi ++ fi + if ! set | grep -q -w GCL_PROF ; then GCL_PROF=$DEFAULT_GCL_PROF ; fi + fi + + DIR=@prefix@/lib/gcl-$VERS; + +-if [ "$GCL_ANSI" = "" ] ; then ++if [ "$GCL_ANSI" = "no" ] ; then + if [ "$GCL_PROF" = "" ] ; then + EXE=saved_gcl; + else +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp +@@ -334,8 +334,10 @@ + ((append at '(*))))));let call_proc_new foil fast linking and catch errors + + (defun add-fast-link (fname la &optional apnarg +- &aux n +- (at (call-arg-types (mapcar (lambda (x) (link-rt x t)) (get-arg-types fname)) la apnarg)) ++ &aux n ++ (at (call-arg-types ++ (adj-call-tps-max (mapcar (lambda (x) (link-rt x t)) (get-arg-types fname))) ++ la apnarg)) + (rt (link-rt (get-return-type fname) t)) + (clp (cclosure-p fname)) + (tail (list rt at clp apnarg))) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp +@@ -2353,6 +2353,12 @@ + (otherwise (when (or always (ltvp val)) + `(vv ,val))))) + ++(defun encap-src-val (val) ++ (typecase val ++ (function (afe (cons 'df nil) (mf (fle val)))) ++ (cons (cons (encap-src-val (car val)) (encap-src-val (cdr val)))) ++ (t val))) ++ + (defun c1constant-value (val always &aux (val (if (exit-to-fmla-p) (not (not val)) val))) + (case + val +@@ -2363,11 +2369,7 @@ + (when l + `(location + ,(make-info :type (or (ltvp val) +- (object-type +- (typecase val +- (function (afe (cons 'df nil) (mf (fle val)))) +- (list (copy-tree val)) +- (t val))))) ++ (object-type (encap-src-val val)))) + ,l)))))) + + (defvar *compiler-temps* +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpflet.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpflet.lsp +@@ -495,7 +495,7 @@ + (clp (when clp (ccb-vs-str (fun-ref-ccb fun)))) + (nm (if clp (ms clp "->fun.fun_self") nm)) + (inl (g1 clp nm sig ap clp (if clp -1 (fun-level fun))))) +- `(,(car sig) ,(cadr sig) ++ `(,(adj-call-tps-max (car sig)) ,(cadr sig) + ,(if mv (flags rfa svt) (flags rfa)) + ,inl))) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp +@@ -823,7 +823,7 @@ + ((cons (eql vv) t) (fm-to-string (cadr form))) + ((cons (member char-value fixnum-value character-value) t) (fm-to-string (caddr form))) + ((eql most-negative-fixnum) #.(string-concatenate "(" (write-to-string (1+ most-negative-fixnum)) "- 1)")) +- (integer (format nil "~a" form)); string character ++ (fixnum (format nil "~a" form)); string character + (float (format nil "~10,,,,,,'eG" form)) + ((complex float) + (string-concatenate "(" (fm-to-string (realpart form)) " + I * " (fm-to-string (imagpart form)) ")")))) +@@ -832,7 +832,7 @@ + (string-concatenate + (cond ((member key '(:cnum :creal)) "") + ((eq ft tt) "") +- ((equal ft t) ++ ((equal ft t) + (if *compiler-new-safety* + (let ((v (member key '(:char :int :fixnum)))) + (if v (si::string-concatenate (setq p "object_to_") (strcat key)) +@@ -1127,11 +1127,19 @@ + (let ((x (position x +c-global-arg-types+ :test 'type<=))) + (if x (1+ x) 0)))) + ++(defconstant +max-typed-args+ ++ (let ((x (cdr (tp-bnds (cadr (si::sig 'c-function-argd)))))) ++ (if (typep x 'fixnum) (1- (truncate (integer-length x) 2)) 0))) ++ ++(defun adj-call-tps-max (tps &aux (i -1)) ++ (mapcar (lambda (x) (type-or1 (>= (incf i) +max-typed-args+) x)) tps)) ++ + (defun new-proclaimed-argd (args return) + (do* ((type (f-type return) (f-type (pop args))) + (i 0 (+ 2 i)) + (ans type (logior ans (ash type i)))) +- ((or (>= i 32) (null args)) (the (unsigned-byte 32) ans)))) ++ ((or (>= i #.(ash +max-typed-args+ 1)) (null args)) ++ (the (unsigned-byte #.(1+ (ash +max-typed-args+ 1))) ans)))) + + (defun type-f (x) + (declare (fixnum x)) +@@ -1300,14 +1308,16 @@ + (defun t3defun-local-entry (fname cfun lambda-expr sp inline-info + &aux specials *reg-clv* (requireds (caaddr lambda-expr)) nargs) + (do ((vl requireds (cdr vl)) +- (types (cadr inline-info) (cdr types))) ++ (types (cadr inline-info) (cdr types)) ++ (i 0 (1+ i))) + ((endp vl)) + (cond ((eq (var-kind (car vl)) 'special) + (push (cons (car vl) (var-loc (car vl))) specials)) + ((var-cb (car vl)) (push (list (eq 'clb (var-loc (car vl))) (car vl)) *reg-clv*)) +-; ((var-cb (car vl)) (push (car vl) *reg-clv*)) + ((setf (var-kind (car vl)) +- (or (car (member (promoted-c-type (var-type (car vl))) +c-local-arg-types+)) 'object)))) ++ (or (when (< i +max-typed-args+) ++ (car (member (promoted-c-type (var-type (car vl))) +c-local-arg-types+))) ++ 'object)))) + (setf (var-loc (car vl)) (cs-push (var-type (car vl)) t))) + (when (is-narg-le lambda-expr) + (setq nargs (car (last requireds))) +@@ -1382,13 +1392,12 @@ + (wt-h "#define VMRV" cm "(a_,b_)" vstu bdsu frsu " return((" (declaration-type (rep-type return-type)) ")a_);") + (wt-h "#define VMR" cm "(a_) VMRV" cm "(a_,0);"))) + +- +-(defun wt-requireds (requireds arg-types &optional first narg) ++(defun wt-requireds (requireds arg-types &optional first narg &aux (i -1)) + (declare (ignore arg-types)) + (flet ((wt (x) (wt x) (let ((*compiler-output1* *compiler-output2*)) (wt x)))) + (dolist (v requireds (wt (if narg ",...)" ")"))) + (setq narg (or narg (is-narg-var v))) +- (let* ((gt (global-type-bump (var-type v))) ++ (let* ((gt (global-type-bump (if (< (incf i) +max-typed-args+) (var-type v) t))) + (cvar (cs-push gt t))) + (when first (wt ",")) + (setq first t) +@@ -1811,6 +1820,12 @@ + ;; ,@(mapcar (lambda (x y) + ;; `(unbox ,(intern (symbol-name x) 'keyword) ,y)) args syms))))))) + ++(defun c-key-rep (key) ++ (ecase key ++ ((:object :char :int :long :float :double :fixnum :void) (string-downcase key)) ++ (:string "char *") ++ (:ustring "unsigned char *"))) ++ + (defmacro defentry (n args c &optional (lt t) + &aux (tsyms (load-time-value + (mapl (lambda (x) (setf (car x) (gensym "DEFENTRY"))) +@@ -1824,9 +1839,9 @@ + (tps (mapcar (lambda (x) (intern (string (if (consp x) (car x) x)) 'keyword)) args)) + (decl (reduce (lambda (y x) + (strcat y (if (> (length y) 0) "," "") +- (cdr (assoc (get x 'cmp-lisp-type) +defentry-c-rep-alist+)))) ++ (c-key-rep x))) + tps :initial-value "")) +- (decl (concatenate 'string (string-downcase rt) " " m "(" decl ");")) ++ (decl (concatenate 'string (c-key-rep rt) " " m "(" decl ");")) + (decl (if st "" decl)) + (syms (mapcar (lambda (x) (declare (ignore x)) (pop tsyms)) args))) + `(defun ,n ,syms +@@ -1881,14 +1896,16 @@ + + (setq h (fun-call fun) at (caar h) rt (cadar h) + at (mapcar 'global-type-bump at) rt (global-type-bump rt));FIXME +- (dolist (vl requireds) +- (cond ((eq (var-kind vl) 'special) +- (push (cons vl (var-loc vl)) specials)) +- ((var-cb vl) (push (list (eq 'clb (var-loc vl)) vl) *reg-clv*)) +-; ((var-cb vl) (push vl *reg-clv*)) +- ((setf (var-kind vl) +- (or (car (member (promoted-c-type (var-type vl)) +c-global-arg-types+)) 'object)))) +- (setf (var-loc vl) (cs-push (var-type vl) t))) ++ (do ((vlp requireds (cdr vlp))(i 0 (1+ i)))((endp vlp)) ++ (let ((vl (car vlp))) ++ (cond ((eq (var-kind vl) 'special) ++ (push (cons vl (var-loc vl)) specials)) ++ ((var-cb vl) (push (list (eq 'clb (var-loc vl)) vl) *reg-clv*)) ++ ((setf (var-kind vl) ++ (or (when (< i +max-typed-args+) ++ (car (member (promoted-c-type (var-type vl)) +c-global-arg-types+))) ++ 'object)))) ++ (setf (var-loc vl) (cs-push (var-type vl) t)))) + + (wt-comment "local function " (if (fun-name fun) (fun-name fun) nil)) + (wt-h "static " (declaration-type (rep-type rt)) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptype.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptype.lsp +@@ -220,11 +220,6 @@ + (list* nil +c-local-var-types-syms+)) + `((object . "object ")))) + +-(defconstant +defentry-c-rep-alist+ +- (mapcar (lambda (x &aux (z (assoc x *c-types*))) +- (cons (cadr z) (eighth z))) +- '(char #+64bit signed-int fixnum short-float long-float string t))) +- + (defconstant +cmp-type-alist+ + (mapcar (lambda (x) (cons (cmp-norm-tp (car x)) (cdr x))) +type-alist+)) + +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -719,6 +719,10 @@ LDFLAGS + CFLAGS + CC + PRELINK_CHECK ++AMM_LIBBOOT_FALSE ++AMM_LIBBOOT_TRUE ++LF ++FF + host_os + host_vendor + host_cpu +@@ -807,6 +811,7 @@ ac_user_opts=' + enable_option_checking + enable_silent_rules + with_lispdir ++enable_libboot + enable_machine + enable_widecons + enable_safecdr +@@ -1478,6 +1483,7 @@ Optional Features: + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") ++put bootstrap code in shared library to be discarded + --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs + --enable-widecons will use a three word cons with simplified typing + --enable-safecdr will protect cdr from immfix and speed up type processing +@@ -4149,6 +4155,38 @@ case $canonical in + i?86-pc-solaris*) use=solaris-i386;; + esac + ++# Check whether --enable-libboot was given. ++if test ${enable_libboot+y} ++then : ++ enableval=$enable_libboot; libboot=$enableval ++else case e in #( ++ e) libboot="yes" ;; ++esac ++fi ++ ++ ++if test "$use" = "gnuwin95" ; then ++ FF=o/firstfile.o ++ ++ LF=o/lastfile.o ++ ++ libboot="no" ++fi ++ ++ if test "$libboot" = "yes"; then ++ AMM_LIBBOOT_TRUE= ++ AMM_LIBBOOT_FALSE='#' ++else ++ AMM_LIBBOOT_TRUE='#' ++ AMM_LIBBOOT_FALSE= ++fi ++ ++if test "$libboot" = "yes" ; then ++ ++printf "%s\n" "#define USE_LIBBOOT 1" >>confdefs.h ++ ++fi ++ + # Check whether --enable-machine was given. + if test ${enable_machine+y} + then : +@@ -7155,19 +7193,11 @@ case $use in + assert_arg_to_cflags -mms-bitfields + for i in makedefc windows/gcl.iss windows/sysdir.bat windows/install.lsp h/gclincl.h; do + cat $i.in | sed 's,^\r\n$,\r\n,g' >tmp && mv tmp $i.in; +- done +- OLD_LDFLAGS=$LDFLAGS +- assert_arg_to_ldflags -pg +- GPL_FLAG="-pg" +- LDFLAGS=$OLD_LDFLAGS;; ++ done;; + *gnuwin*) + assert_arg_to_cflags -fno-zero-initialized-in-bss + assert_arg_to_cflags -mms-bitfields +- assert_arg_to_ldflags -Wl,--stack,8000000 +- OLD_LDFLAGS=$LDFLAGS +- assert_arg_to_ldflags -pg +- GPL_FLAG="-pg" +- LDFLAGS=$OLD_LDFLAGS;; ++ assert_arg_to_ldflags -Wl,--stack,8000000;; + 386-linux) + if ! add_arg_to_cflags -msse2 || ! add_arg_to_cflags -mfpmath=sse ; then + add_arg_to_cflags -ffloat-store; +@@ -8742,6 +8772,41 @@ esac + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 ++printf %s "checking size of size_t... " >&6; } ++if test ${ac_cv_sizeof_size_t+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" ++then : ++ ++else case e in #( ++ e) if test "$ac_cv_type_size_t" = yes; then ++ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++as_fn_error 77 "cannot compute sizeof (size_t) ++See 'config.log' for more details" "$LINENO" 5; } ++ else ++ ac_cv_sizeof_size_t=0 ++ fi ;; ++esac ++fi ++ ;; ++esac ++fi ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 ++printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } ++ ++ ++ ++printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h ++ ++ ++# The cast to long int works around a bug in the HP C Compiler ++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. ++# This bug is HP SR number 8606223364. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 + printf %s "checking size of long... " >&6; } + if test ${ac_cv_sizeof_long+y} +@@ -9029,7 +9094,8 @@ esac + printf %s "checking for hugepagewidth... " >&6; } + j="" + if test -e /proc/meminfo ; then +- j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;if (j==$2) printf("%d\n",i+10)}' /proc/meminfo` ++ j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2; ++ if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}' /proc/meminfo` + fi + if test "$j" != "" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $j" >&5 +@@ -11661,9 +11727,6 @@ then : + fi + + +-#LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`" +-LDFLAGS="`echo $GPL_FLAG $LDFLAGS`" +-#AM_LDFLAGS = $LDFLAGS + BASE_LDFLAGS="$LDFLAGS" + LDFLAGS="" + +@@ -11859,6 +11922,10 @@ else + am__EXEEXT_FALSE= + fi + ++if test -z "${AMM_LIBBOOT_TRUE}" && test -z "${AMM_LIBBOOT_FALSE}"; then ++ as_fn_error $? "conditional \"AMM_LIBBOOT\" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi + if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -71,6 +71,22 @@ case $canonical in + i?86-pc-solaris*) use=solaris-i386;; + esac + ++AC_ARG_ENABLE([libboot],[put bootstrap code in shared library to be discarded], ++ [libboot=$enableval],[libboot="yes"]) ++ ++if test "$use" = "gnuwin95" ; then ++ FF=o/firstfile.o ++ AC_SUBST(FF) ++ LF=o/lastfile.o ++ AC_SUBST(LF) ++ libboot="no" ++fi ++ ++AM_CONDITIONAL([AMM_LIBBOOT],[test "$libboot" = "yes"]) ++if test "$libboot" = "yes" ; then ++ AC_DEFINE([USE_LIBBOOT],[1],[boot code in shared library]) ++fi ++ + AC_ARG_ENABLE([machine],[ --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs], + [echo enable_machine=$enableval ; use=$enableval]) + +@@ -271,19 +287,11 @@ case $use in + assert_arg_to_cflags -mms-bitfields + for i in makedefc windows/gcl.iss windows/sysdir.bat windows/install.lsp h/gclincl.h; do + cat $i.in | sed 's,[^\r]\n$,\r\n,g' >tmp && mv tmp $i.in; +- done +- OLD_LDFLAGS=$LDFLAGS +- assert_arg_to_ldflags -pg +- GPL_FLAG="-pg" +- LDFLAGS=$OLD_LDFLAGS;; ++ done;; + *gnuwin*) + assert_arg_to_cflags -fno-zero-initialized-in-bss + assert_arg_to_cflags -mms-bitfields +- assert_arg_to_ldflags -Wl,--stack,8000000 +- OLD_LDFLAGS=$LDFLAGS +- assert_arg_to_ldflags -pg +- GPL_FLAG="-pg" +- LDFLAGS=$OLD_LDFLAGS;; ++ assert_arg_to_ldflags -Wl,--stack,8000000;; + 386-linux) + if ! add_arg_to_cflags -msse2 || ! add_arg_to_cflags -mfpmath=sse ; then + add_arg_to_cflags -ffloat-store; +@@ -793,6 +801,7 @@ esac + # mechanism, in the PAGE macro. This offset is subtracted from + # addresses, in calculating a page for an address in the heap. + ++AC_CHECK_SIZEOF(size_t,0) + AC_CHECK_SIZEOF(long,0) + AC_CHECK_SIZEOF(short,0) + AC_CHECK_SIZEOF(int,0) +@@ -853,7 +862,8 @@ esac + AC_MSG_CHECKING([for hugepagewidth]) + j="" + if test -e /proc/meminfo ; then +- j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2;if (j==$2) printf("%d\n",i+10)}' /proc/meminfo` ++ j=`awk '/^Hugepagesize:/ {if ($3!="kB") next;j=1;for (i=0;i<20 && j!=$2;i++) j=j*2; ++ if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}' /proc/meminfo` + fi + if test "$j" != "" ; then + AC_MSG_RESULT([$j]) +@@ -1849,9 +1859,6 @@ AC_CONFIG_FILES([bin/gcl]) + AC_CHECK_HEADERS(sys/mman.h,AC_CHECK_FUNCS(mprotect)) + AC_CHECK_HEADERS(alloca.h) + +-#LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`" +-LDFLAGS="`echo $GPL_FLAG $LDFLAGS`" +-#AM_LDFLAGS = $LDFLAGS + BASE_LDFLAGS="$LDFLAGS" + LDFLAGS="" + AC_SUBST(BASE_LDFLAGS) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_2ore2" ++"Version_2_7_2ore3" + +--- gcl27-2.7.1.orig/h/386-macosx.h ++++ gcl27-2.7.1/h/386-macosx.h +@@ -132,7 +132,7 @@ if (realpath (buf, fub) == 0) { + #define UC(a_) ((ucontext_t *)a_) + #define SF(a_) ((siginfo_t *)a_) + +-#define FPE_CODE(i_,v_) make_fixnum(FFN(fSfpe_code)(*(fixnum *)&UC(v_)->uc_mcontext->__fs.__fpu_fsw,UC(v_)->uc_mcontext->__fs.__fpu_mxcsr)) ++#define FPE_CODE(i_,v_) make_fixnum((fixnum)FFN(fSfpe_code)(*(fixnum *)&UC(v_)->uc_mcontext->__fs.__fpu_fsw,UC(v_)->uc_mcontext->__fs.__fpu_mxcsr)) + #define FPE_ADDR(i_,v_) make_fixnum(UC(v_)->uc_mcontext->__fs.__fpu_fop ? UC(v_)->uc_mcontext->__fs.__fpu_ip : (fixnum)SF(i_)->si_addr) + #define FPE_CTXT(v_) list(3,make_fixnum((fixnum)&UC(v_)->uc_mcontext->__ss), \ + make_fixnum((fixnum)&UC(v_)->uc_mcontext->__fs.__fpu_stmm0), \ +--- gcl27-2.7.1.orig/h/compprotos.h ++++ gcl27-2.7.1/h/compprotos.h +@@ -85,7 +85,11 @@ char object_to_char(object); + void not_a_symbol(object); + object number_expt(object,object); + object fLrow_major_aref(object,fixnum); ++#if SIZEOF_SIZE_T == SIZEOF_INT ++void *alloca(unsigned); ++#else + void *alloca(unsigned long); ++#endif + object cmod(object); + object ctimes(object,object); + object cdifference(object,object); +--- gcl27-2.7.1.orig/h/gclincl.h.in ++++ gcl27-2.7.1/h/gclincl.h.in +@@ -315,6 +315,9 @@ + /* The size of 'short', as computed by sizeof. */ + #undef SIZEOF_SHORT + ++/* The size of 'size_t', as computed by sizeof. */ ++#undef SIZEOF_SIZE_T ++ + /* staticly linked images */ + #undef STATIC_LINKING + +@@ -332,6 +335,9 @@ + /* use gprof */ + #undef USE_GPROF + ++/* boot code in shared library */ ++#undef USE_LIBBOOT ++ + /* use readline library */ + #undef USE_READLINE + +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -1450,8 +1450,6 @@ void init_shared_memory(void); + + void * object_to_pointer(object); + +-void * alloca(unsigned long); +- + object make_dcomplex(dcomplex); + + object find_init_string(const char *); +--- gcl27-2.7.1.orig/info/internal.texi ++++ gcl27-2.7.1/info/internal.texi +@@ -218,7 +218,7 @@ GCL specific: The compiler defines a Lis + calling sequence to the C language function specified by C-FUNCTION. The + interpreter ignores this form. The ARG-TYPES specifies the C types of the + arguments which C-FUNCTION requires. The list of allowed types is (object +-char int float double string). Code will be produced to coerce from a lisp ++char int long float double string). Code will be produced to coerce from a lisp + object to the appropriate type before passing the argument to the C-FUNCTION. + The c-function should be of the form (c-result-type c-fname) where + c-result-type is a member of (void object char int float double string). +--- gcl27-2.7.1.orig/lsp/gcl_info.lsp ++++ gcl27-2.7.1/lsp/gcl_info.lsp +@@ -96,18 +96,12 @@ + + (defun get-index-node () + (or (third *current-info-data*) +- (let* ( +- s +- (node-string (car (nth 1 *current-info-data*))) +- (node +- (and node-string (car (get-nodes "Index" node-string))))) +- (when node +- (setq s (show-info +- node +- nil +- nil +- )) +- (setf (third *current-info-data*) s))))) ++ (let* ((node-string (car (nth 1 *current-info-data*))) ++ (nodes (when node-string (get-nodes "Index" node-string)))) ++ (when nodes ++ (setf (third *current-info-data*) ++ (reduce 'string-concatenate ++ (mapcar (lambda (x) (show-info x nil nil)) nodes))))))) + + (defun nodes-from-index (pat &aux (i 0) ans + (*case-fold-search* t) *match-data*) +--- gcl27-2.7.1.orig/o/format.c ++++ gcl27-2.7.1/o/format.c +@@ -160,11 +160,11 @@ object sSAindent_formatted_outputA; + VOL int old_fmt_index; \ + VOL int old_fmt_end; \ + VOL object old_fmt_iteration_list; \ +- jmp_bufp VOL old_fmt_jmp_bufp; \ ++ jmp_bufp VOL old_fmt_jmp_bufp; \ + VOL int old_fmt_indents; \ + VOL object old_fmt_string ; \ +- VOL object(*old_fmt_advance)(void) ; \ +- VOL void (*old_fmt_lt)(volatile bool,bool) ; \ ++ object(*VOL old_fmt_advance)(void) ; \ ++ void (*VOL old_fmt_lt)(volatile bool,bool) ; \ + VOL format_parameter *old_fmt_paramp + #define fmt_save old_fmt_stream = fmt_stream; \ + old_ctl_origin = ctl_origin; \ +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -582,7 +582,7 @@ void + init_boot(void) { + + char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self; +-#ifndef __CYGWIN__ ++#ifdef USE_LIBBOOT + void *v,*q; + #endif + char *z,*s="libboot.so"; +@@ -592,14 +592,14 @@ init_boot(void) { + sSAoptimize_maximum_pagesA->s.s_dbind=Cnil; + z=alloca(n); + snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s); +-#ifndef __CYGWIN__ ++#ifdef USE_LIBBOOT + if (!(v=dlopen(z,RTLD_LAZY|RTLD_GLOBAL))) + printf("%s\n",dlerror()); + if (!(q=dlsym(v,"gcl_init_boot"))) + printf("%s\n",dlerror()); + #endif + initializing_boot=1; +-#ifdef __CYGWIN__ ++#ifndef USE_LIBBOOT + { + extern void gcl_init_boot(void); + gcl_init_boot(); +--- gcl27-2.7.1.orig/unixport/init_raw.lsp.in ++++ gcl27-2.7.1/unixport/init_raw.lsp.in +@@ -90,13 +90,13 @@ + + (in-package :compiler) + (setq *cc* @LI_CC@ +- *default-prof-p* (> (length @LI_DFP@) 0) + *ld* @LI_LD@ + *ld-libs* @LI_LD_LIBS@ + *ld-libs* (concatenate 'string "-l" #+ansi-cl "ansi_" "gcl" #+gprof "_gprof" " " *ld-libs*) + *opt-three* @LI_OPT_THREE@ + *opt-two* @LI_OPT_TWO@ +- *init-lsp* @LI_INIT_LSP@) ++ *init-lsp* @LI_INIT_LSP@ ++ si::*info-paths* (cons "@prefix@/share/info/" si::*info-paths*)) + + (import 'si::(clines defentry defcfun object void int double quit bye gbc system + commonp *break-on-warnings* make-char char-bits char-font diff --git a/debian/patches/Version_2_7_2pre1 b/debian/patches/Version_2_7_2pre1 new file mode 100644 index 00000000..3d24baf6 --- /dev/null +++ b/debian/patches/Version_2_7_2pre1 @@ -0,0 +1,21 @@ +Description: Update to git tag Version_2_7_2pre1 + Git tag update +Forwarded: not-needed +Author: Camm Maguire + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_0" ++"Version_2_7_2ore1" + +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -707,6 +707,7 @@ empty_relblock(void) { + for (;!rb_emptyp();) { + tm_table[t_relocatable].tm_adjgbccnt--; + expand_contblock_index_space(); ++ expand_contblock_array(); + GBC(t_relocatable); + } + sSAleaf_collection_thresholdA->s.s_dbind=o; diff --git a/debian/patches/Version_2_7_2pre10 b/debian/patches/Version_2_7_2pre10 new file mode 100644 index 00000000..fbad1a98 --- /dev/null +++ b/debian/patches/Version_2_7_2pre10 @@ -0,0 +1,191 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Feb, 22 2026 16:56:52 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -110,7 +110,7 @@ endif + + EXTRA_DIST=$(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\ + lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \ +- majvers minvers git.tag release ++ majvers minvers git.tag release bin/c23.awk + + # end of primaries + +@@ -123,7 +123,7 @@ INCL_TEXI=$(addprefix info/,$(addsuffix + + INCL_C=o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \ + o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \ +- o/sfasli.c o/firstfile.c o/lastfile.c ++ o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c + INIT_L=unixport/sys_init.c unixport/sys.c o/boot.c unixport/cinit.lisp + BASE_H= h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h \ + h/funlink.h h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \ +@@ -459,8 +459,8 @@ h/cmpincludea.h: $(filter-out gclincl.h, + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + + o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk +- chmod +x bin/c23.awk +- $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@ ++ chmod +x $(word 3,$^) ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | $(word 3,$^) >$@ + + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h + @cat $^ >new_$(@F) +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -1017,7 +1017,7 @@ dist_noinst_DATA = $(am__append_5) $(am_ + + EXTRA_DIST = $(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\ + lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \ +- majvers minvers git.tag release ++ majvers minvers git.tag release bin/c23.awk + + + # end of primaries +@@ -1030,7 +1030,7 @@ INCL_TEXI = $(addprefix info/,$(addsuffi + + INCL_C = o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \ + o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \ +- o/sfasli.c o/firstfile.c o/lastfile.c ++ o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c + + INIT_L = unixport/sys_init.c unixport/sys.c o/boot.c unixport/cinit.lisp + BASE_H = h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h \ +@@ -4907,8 +4907,8 @@ h/cmpincludea.h: $(filter-out gclincl.h, + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + + o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk +- chmod +x bin/c23.awk +- $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@ ++ chmod +x $(word 3,$^) ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | $(word 3,$^) >$@ + + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h + @cat $^ >new_$(@F) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp +@@ -301,8 +301,11 @@ + (unless (= nreq nsup) (list "_n==" (- (1+ nreq)) (unless st "&&"))) + (unless st "_l==Cnil") ")")) + +-(defun mod-argstr (n call st nsup) +- (let* ((x (commasep (append (nobs nsup "#") (nobs (- n nsup)) (when st (list "_l"))))) ++(defun nobs-wrap (nobs sig &aux (at (car sig))) ++ (mapcar (lambda (x y) (ms (cdr (assoc y +to-c-var-alist+)) "(" x ")")) nobs at)) ++ ++(defun mod-argstr (n call st nsup sig) ++ (let* ((x (commasep (append (nobs nsup "#") (nobs-wrap (nobs (- n nsup)) sig) (when st (list "_l"))))) + (s (or (position #\# call) (length call)))) + (ms (subseq call 0 s) x))) + +@@ -349,7 +352,7 @@ + (let ((nl (list (string #\Newline) " "))) + (ms (list "@" (nords (1+ nsup)) ";") + "({" (bind-str nreq nsup nl) nl (cond-str nreq nsup st) " ? " nl +- (nvfun-wrap cname (mod-argstr nreq argstr st nsup) sig clp ap) " : " nl ++ (nvfun-wrap cname (mod-argstr nreq argstr st nsup sig) sig clp ap) " : " nl + (insufficient-arg-str fnstr nreq nsup sig st) ";})"))))) + + +@@ -490,14 +493,16 @@ + + + (defun stub (num name args type clp +- &aux (va (eq '* (car (last args)))) (n (if va 1 0))(i (max n (- (length args) n)));FIXME ++ &aux (va (eq '* (car (last args)))) (n (if va 1 0)) ++ (i (max n (- (length args) n)));FIXME ++ (si (write-to-string i)) + (d (declaration-type (rep-type (if (link-arg-p type) type t))))) + (concatenate + 'string + (stub-decl (concatenate 'string "LnkT" num) args d t) + "{ +- int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" (write-to-string i)) "; +- object *FOO=alloca(nargs*sizeof(*FOO)); ++ int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" si) "; ++ object *FOO=alloca((nargs>" si "? nargs : " si ")*sizeof(*FOO)); + " + + (let ((j 0)) +@@ -512,9 +517,9 @@ + " + { + va_list ap; +- va_start(ap,x" (write-to-string i) "); ++ va_start(ap,x" si "); + int i; +- for (i=" (write-to-string i) ";i +Date: Feb, 26 2026 16:58:56 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +Bug-Debian: https://bugs.debian.org/1108096 +Bug-Debian: https://bugs.debian.org/1118704 +Bug-Debian: https://bugs.debian.org/1122744 +Bug-Debian: https://bugs.debian.org/1128546 +Bug-Debian: https://bugs.debian.org/1128663 +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/ansi-tests/read-byte.lsp ++++ gcl27-2.7.1/ansi-tests/read-byte.lsp +@@ -96,7 +96,9 @@ + (let ((s (open "foo.txt" + :direction :input + :element-type '(unsigned-byte 8)))) +- (read-byte s)) ++ (unwind-protect ++ (read-byte s) ++ (close s))) + end-of-file)) + t) + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1 @@ +-"Version_2_7_2pre10" +- ++"Version_2_7_2pre11" +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -73,7 +73,6 @@ struct key {short n,allow_other_keys; + /* bind.c:975:OF */ extern void set_key_struct (struct key *ks, object data); /* (ks, data) struct key *ks; object data; */ + /* bind.c:995:OF */ extern void gcl_init_bind (void); /* () */ + /* block.c:121:OF */ extern void gcl_init_block (void); /* () */ +-/* bsearch.c:5:OF */ extern void *bsearch (const void *key, const void *base, size_t nel, size_t keysize, int (*compar) (const void *,const void *)); /* (key, base, nel, keysize, compar) char *key; char *base; unsigned int nel; unsigned int keysize; int (*compar)(); */ + #if defined (__MINGW32__) + /* bzero.c:3:OF */ /* extern void bzero (char *b, size_t length); */ /* (b, length) char *b; int length; */ + #endif +--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp ++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp +@@ -43,7 +43,7 @@ + (string-concatenate "(" (substitute #\^ #\! (subseq x 0 2)) (subseq x 2) ")"))) + (cons #v"\\*" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "]*)") "(.*)"))) + (cons #v"\\?" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "])") "(.)"))) +- (cons #v"\\." (lambda (x y) (declare (ignore x y))"\\.")))) ++ (cons #v"[+|.^$()]" (lambda (x y) (declare (ignore x y))(string-concatenate "\\" x))))) + + (defconstant +physical-pathname-defaults+ '(("" "" "" "") + ("" "" "" "") +--- gcl27-2.7.1.orig/lsp/gcl_truename.lsp ++++ gcl27-2.7.1/lsp/gcl_truename.lsp +@@ -8,7 +8,13 @@ + (fr (set-fr fr (if (eql i -1) n i))) + (l (when (eq (stat1 fr) :link) (readlinkat 0 fr)))) + (cond (l (let ((b (if (eql #\/ (aref l 0)) 0 b))) +- (link-expand (concatenate 'string (set-fr fr b) l (frame (if (eql i -1) n i) n)) b))) ++ (link-expand (concatenate ++ 'string ++ (set-fr fr b) ++ (let ((ll (1- (length l)))) ++ (if (eql #\/ (aref l ll)) (subseq l 0 ll) l)) ++ (frame (if (eql i -1) n i) n)) ++ b))) + ((eql i -1) str) + ((link-expand str (1+ i) n fr)))))) + diff --git a/debian/patches/Version_2_7_2pre12 b/debian/patches/Version_2_7_2pre12 new file mode 100644 index 00000000..55b1fb14 --- /dev/null +++ b/debian/patches/Version_2_7_2pre12 @@ -0,0 +1,63 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Mar, 04 2026 12:09:08 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp +@@ -112,7 +112,11 @@ + ;; (list 'call-global info 'terpri (list stream)))) + + (defun gcst (n &optional e) +- (ms "(object(*)(" (cdr (mapcan (lambda (x) (declare (ignore x)) (list "," "object")) (make-list n))) (when e ",...") "))")) ++ (let* ((m (min n (- call-arguments-limit 2))) ++ (l1 (make-list m :initial-element ",object")) ++ (l1 (when l1 (cons "object" (cdr l1)))) ++ (l2 (when (> n m) (make-list (- n m) :initial-element ",object")))) ++ (ms "(object(*)(" l1 l2 (when e ",...") "))"))) + + (defun c2apply (funob args) + (unless (eq 'ordinary (car funob)) (baboon)) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre11" ++"Version_2_7_2pre12" +--- gcl27-2.7.1.orig/h/error.h ++++ gcl27-2.7.1/h/error.h +@@ -99,7 +99,7 @@ object ihs_top_function_name(ihs_ptr h); + sKformat_control,make_simple_string(a_),sKformat_arguments,list(1,(b_))) + #define FEtoo_few_arguments(a_,b_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ +- sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\ ++ sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\ + sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_)))) + #define FEwrong_no_args(a_,b_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ +@@ -112,7 +112,7 @@ object ihs_top_function_name(ihs_ptr h); + + #define FEtoo_many_arguments(a_,b_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ +- sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\ ++ sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\ + sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_)))) + #define FEtoo_many_argumentsF(a_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ diff --git a/debian/patches/Version_2_7_2pre13 b/debian/patches/Version_2_7_2pre13 new file mode 100644 index 00000000..e7a3f790 --- /dev/null +++ b/debian/patches/Version_2_7_2pre13 @@ -0,0 +1,1596 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Mar, 14 2026 13:04:53 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmplam.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmplam.lsp +@@ -73,7 +73,7 @@ + (cons (list (car procls) (or (if (atom (car ll)) (car ll) (caar ll)))) + (decls-from-procls (cdr ll) (cdr procls) body))))) + +-(defun c1lambda-expr (args &aux (regs (pop args)) requireds tv ++(defun c1lambda-expr (args osrc &aux (regs (pop args)) requireds tv + doc body ss is ts other-decls (ovars *vars*) + (*vars* *vars*) narg (info (make-info)) ctps) + +@@ -91,6 +91,11 @@ + (check-vdecl (mapcar 'var-name tv) ts is) + + (setq body (c1decl-body other-decls body)) ++ (let ((x (set-difference ++ (remove-if-not 'si::specialp ++ (append regs (mapcar 'var-name *undefined-vars*))) ++ ss))) ++ (when x (push `(declare (special ,@x)) (cddr osrc)))) + (ref-vars body requireds) + (dolist (var requireds) (check-vref var)) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmplet.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmplet.lsp +@@ -39,8 +39,9 @@ + (unless (eq t (var-type v)) (var-type v))) + (var-loc v))) + (unless (var-type v) +- (cmpwarn "Type mismatches binding declared ~s variable ~s to type ~s." +- (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1))) ++ (keyed-cmpnote (list (var-name v) 'type-propagation 'type 'init-type) ++ "Type mismatches binding declared ~s variable ~s to type ~s." ++ (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1))) + (keyed-cmpnote (list (var-name v) 'type-propagation 'type 'init-type) + "Setting init type of ~s to ~s" (var-name v) (cmp-unnorm-tp (var-type v))))) + +@@ -149,6 +150,8 @@ + (setq body nil)) + + (c1add-globals (set-difference ss vnames)) ++ (let ((x (set-difference (remove-if-not 'si::specialp vnames) ss))) ++ (when x (push `(declare (special ,@x)) (cdr args)))) + (check-vdecl vnames ts is) + (setq body (c1decl-body other-decls body)) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmulti.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpmulti.lsp +@@ -252,6 +252,8 @@ + (push v vars))) + + (c1add-globals (set-difference ss vnames)) ++ (let ((x (set-difference (remove-if-not 'si::specialp vnames) ss))) ++ (when x (push `(declare (special ,@x)) (cddr args)))) + + (setq init-form (c1arg (cadr args) info)) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp +@@ -437,9 +437,6 @@ + ((let let* lambda) + `(,(car form) + ,(mapcar (lambda (x) (if (atom x) x `(,(car x) ,@(portable-source (cdr x) t)))) (cadr form)) +- ,@(let* ((r (delete-if (lambda (x) (or (not (si::specialp x)) (is-declared-special x (cddr form)))) +- (mapcar (lambda (x) (if (atom x) x (car x))) (cadr form)))));FIXME key name +- (when r `((declare (special ,@r))))) + ,@(ndbctxt (portable-source (cddr form) t)))) + ((quote function side-effects) form) + (infer-tp `(,(car form) ,(cadr form) +@@ -462,10 +459,6 @@ + ,@(let ((*mlts* (append fns *mlts*))) + (ndbctxt (portable-source (cddr form) t)))))) + (multiple-value-bind `(,(car form) ,(cadr form) ,(portable-source (caddr form)) +- ,@(let ((r (remove-if (lambda (x) (or (not (si::specialp x)) +- (is-declared-special x (cdddr form)))) +- (cadr form)))) +- (when r `((declare (special ,@r))))) + ,@(ndbctxt (portable-source (cdddr form) t)))) + ((case ccase ecase) `(,(car form) ,(portable-source (cadr form)) + ,@(mapcar (lambda (x) `(,(car x) ,@(portable-source (cdr x) t))) (cddr form)))))) +@@ -811,7 +804,7 @@ + ; (true "Ct") + ((cons (eql vv) t) (fm-to-string (cadr form))) + ((cons (member char-value fixnum-value character-value) t) (fm-to-string (caddr form))) +- ((eql most-negative-fixnum) #.(string-concatenate "(" (write-to-string (1+ most-negative-fixnum)) "- 1)")) ++ ((eql #.most-negative-fixnum) #.(string-concatenate "(" (write-to-string (1+ most-negative-fixnum)) "- 1)")) + (fixnum (format nil "~a" form)); string character + (float (format nil "~10,,,,,,'eG" form)) + ((complex float) +@@ -895,9 +888,9 @@ + (let ((a (member '&aux ll))) + (ldiff ll a))) + +-(defun do-l1-fun (name src e b &aux (wns *warning-note-stack*) (*recursion-detected* (cons (list name) *recursion-detected*))) ++(defun do-l1-fun (name src e b osrc &aux (wns *warning-note-stack*) (*recursion-detected* (cons (list name) *recursion-detected*))) + +- (let* ((l (c1lambda-expr src)) ++ (let* ((l (c1lambda-expr src osrc)) + (osig (car e)) + (sig (lam-e-to-sig l)) + (rd (cdar *recursion-detected*)) +@@ -907,7 +900,7 @@ + (cond (rep + (keyed-cmpnote (list name 'recursion) "Reprocessing ~s: ~s ~s" name osig sig) + (setq *warning-note-stack* wns);FIXME try to use with-restore-vars +- (do-l1-fun name src e b)) ++ (do-l1-fun name src e b osrc)) + (l)))) + + +@@ -932,7 +925,7 @@ + (*src-inline-recursion* (when vis (list (make-tagged-sir (list (sir-name name)) tag (ttl-ll (cadr src)))))) + (*c1exit* (list (make-c1exit name))) + (*current-form* `(defun ,name)) +- (l (do-l1-fun name (cdr (new-defun-args src tag)) e b)) ++ (l (do-l1-fun name (cdr (new-defun-args src tag)) e b src)) + (clv (get-clv l))) + (setf (second e) (mapcan (lambda (x) (when (symbolp x) (list (cons x (get-sig x))))) + (info-ref (cadr l))) +@@ -941,7 +934,7 @@ + (fifth e) (logior (if (iflag-p (info-flags (cadr l)) side-effects) 0 2) (if (= (length clv) 0) 1 0)) + (sixth e) name) + (when *sig-discovery* +- (when (symbol-package name) (unless (eq name 'lambda) (push (cons name (apply 'si::make-function-plist e)) si::*sig-discovery-props*)))) ++ (when (symbol-package name) (unless b (push (cons name (apply 'si::make-function-plist e)) si::*sig-discovery-props*)))) + l)) + + ;; top-level lex-ref walker +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpvar.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpvar.lsp +@@ -509,8 +509,9 @@ + (setq t1 (ensure-known-type (coerce-to-one-value t1))) + (let* ((tp (type-and (var-dt v) t1))) + (unless (or tp (not (and (var-dt v) t1))) +- (cmpwarn "Type mismatches setting declared ~s variable ~s to type ~s from form ~s." +- (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1) (car form))) ++ (keyed-cmpnote (list (var-name v) 'type-propagation 'type) ++ "Type mismatches setting declared ~s variable ~s to type ~s from form ~s." ++ (cmp-unnorm-tp (var-dt v)) (var-name v) (cmp-unnorm-tp t1) (car form))) + (keyed-cmpnote (list (var-name v) 'type-propagation 'type) + "Setting var-type on ~s from ~s to ~s, form ~s, max ~s" + (var-name v) (cmp-unnorm-tp (var-type v)) (cmp-unnorm-tp tp) (car form) (cmp-unnorm-tp (var-mt v))) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre12" ++"Version_2_7_2pre13" +--- gcl27-2.7.1.orig/info/gcl-si.info ++++ gcl27-2.7.1/info/gcl-si.info +@@ -1,4 +1,4 @@ +-This is gcl-si.info, produced by makeinfo version 7.1 from gcl-si.texi. ++This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi. + + This is a Texinfo GCL SYSTEM INTERNALS Manual + +@@ -12,46 +12,46 @@ END-INFO-DIR-ENTRY +  + Indirect: + gcl-si.info-1: 319 +-gcl-si.info-2: 347893 ++gcl-si.info-2: 343510 +  + Tag Table: + (Indirect) + Node: Top319 + Node: Numbers1239 +-Node: Sequences and Arrays and Hash Tables23636 +-Node: Characters49429 +-Node: Lists56825 +-Node: Streams and Reading70599 +-Node: Special Forms and Functions95986 +-Node: Compilation121638 +-Node: Symbols134272 +-Node: Operating System144031 +-Node: Command Line144247 +-Node: Operating System Definitions148429 +-Node: Environment Variables154786 +-Node: Structures156375 +-Node: Iteration and Tests157927 +-Node: User Interface161377 +-Node: Doc170439 +-Node: Type173724 +-Node: GCL Specific176384 +-Node: Bignums185027 +-Node: C Interface187717 +-Node: Available Symbols187909 +-Node: External Shared Libraries188400 +-Node: System Definitions203986 +-Node: Regular Expressions238596 +-Node: Debugging244844 +-Node: Source Level Debugging in Emacs245045 +-Node: Low Level Debug Functions249290 +-Node: Miscellaneous250290 +-Node: Environment250498 +-Node: Inititialization251123 +-Node: Low Level X Interface251667 +-Node: Compiler Definitions252264 +-Node: JAPI GUI Library Binding258393 +-Node: Function Index277447 +-Node: Variable Index347893 ++Node: Sequences and Arrays and Hash Tables23635 ++Node: Characters49430 ++Node: Lists56802 ++Node: Streams and Reading70576 ++Node: Special Forms and Functions95964 ++Node: Compilation121601 ++Node: Symbols133502 ++Node: Operating System143262 ++Node: Command Line143478 ++Node: Operating System Definitions147660 ++Node: Environment Variables154017 ++Node: Structures155607 ++Node: Iteration and Tests157159 ++Node: User Interface160609 ++Node: Doc169668 ++Node: Type172953 ++Node: GCL Specific175611 ++Node: Bignums184163 ++Node: C Interface186852 ++Node: Available Symbols187044 ++Node: External Shared Libraries187535 ++Node: System Definitions203120 ++Node: Regular Expressions235093 ++Node: Debugging241340 ++Node: Source Level Debugging in Emacs241541 ++Node: Low Level Debug Functions245786 ++Node: Miscellaneous246786 ++Node: Environment246994 ++Node: Inititialization247619 ++Node: Low Level X Interface248163 ++Node: Compiler Definitions248760 ++Node: JAPI GUI Library Binding254730 ++Node: Function Index273784 ++Node: Variable Index343510 +  + End Tag Table + +--- gcl27-2.7.1.orig/info/gcl-si.info-1 ++++ gcl27-2.7.1/info/gcl-si.info-1 +@@ -1,4 +1,4 @@ +-This is gcl-si.info, produced by makeinfo version 7.1 from gcl-si.texi. ++This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi. + + This is a Texinfo GCL SYSTEM INTERNALS Manual + +@@ -96,7 +96,7 @@ File: gcl-si.info, Node: Numbers, Next + + Returns, as three values, the integer interpretation of significand + F, the exponent E, and the sign S of the given float, so that E +- FLOAT = S * F * B where B = (FLOAT-RADIX FLOAT) ++ FLOAT = S * F * B where B = (FLOAT-RADIX FLOAT) + + F is a non-negative integer, E is an integer, and S is either 1 or + -1. +@@ -130,7 +130,7 @@ File: gcl-si.info, Node: Numbers, Next + or into RESULT-BIT-ARRAY otherwise. + + -- Function: INT-CHAR (integer) +- Package:LISP ++ Package:SI + + Performs the inverse of CHAR-INT. Equivalent to CODE-CHAR in GCL. + +@@ -211,9 +211,9 @@ File: gcl-si.info, Node: Numbers, Next + + Returns an integer produced by performing the logical operation + specified by OP on the two integers. OP must be the value of one +- of the following constants: BOOLE-CLR BOOLE-C1 BOOLE-XOR +- BOOLE-ANDC1 BOOLE-SET BOOLE-C2 BOOLE-EQV BOOLE-ANDC2 BOOLE-1 +- BOOLE-AND BOOLE-NAND BOOLE-ORC1 BOOLE-2 BOOLE-IOR BOOLE-NOR ++ of the following constants: BOOLE-CLR BOOLE-C1 BOOLE-XOR ++ BOOLE-ANDC1 BOOLE-SET BOOLE-C2 BOOLE-EQV BOOLE-ANDC2 BOOLE-1 ++ BOOLE-AND BOOLE-NAND BOOLE-ORC1 BOOLE-2 BOOLE-IOR BOOLE-NOR + BOOLE-ORC2 See the variable docs of these constants for their + operations. + +@@ -441,7 +441,7 @@ File: gcl-si.info, Node: Numbers, Next + Package:LISP + + Returns, as three values, the significand F, the exponent E, and +- the sign S of the given float, so that E FLOAT = S * F * B where B ++ the sign S of the given float, so that E FLOAT = S * F * B where B + = (FLOAT-RADIX FLOAT) + + S and F are floating-point numbers of the same float format as +@@ -865,7 +865,7 @@ File: gcl-si.info, Node: Numbers, Next + Package:LISP + + Returns the largest integer not larger than the NUMBER divided by +- DIVISOR. The second returned value is (- NUMBER (* first-value ++ DIVISOR. The second returned value is (- NUMBER (* first-value + DIVISOR)). + + -- Function: PLUSP (number) +@@ -943,7 +943,7 @@ File: gcl-si.info, Node: Sequences and + elements + + except that all elements not satisfying TEST are replaced with +- NEWITEM. SEQUENCE may be destroyed. ++ NEWITEM. SEQUENCE may be destroyed. + + -- Function: FIND-IF (test sequence &key (from-end nil) (start 0) (end + (length sequence)) (key #'identity)) +@@ -1630,7 +1630,7 @@ File: gcl-si.info, Node: Sequences and + Package:LISP + + Combines all the elements of SEQUENCE using a binary operation +- FUNCTION. If INITIAL-VALUE is supplied, it is logically placed ++ FUNCTION. If INITIAL-VALUE is supplied, it is logically placed + before the SEQUENCE. + + -- Function: STRING-LESSP (string1 string2 &key (start1 0) (end1 +@@ -1672,10 +1672,10 @@ File: gcl-si.info, Node: Characters, N + STRING. This is faster than CHAR. + + -- Constant: CHAR-SUPER-BIT +- Package:LISP The bit that indicates a super character. ++ Package:SI The bit that indicates a super character. + + -- Constant: CHAR-FONT-LIMIT +- Package:LISP The upper exclusive bound on values produced by ++ Package:SI The upper exclusive bound on values produced by + CHAR-FONT. + + -- Function: CHAR-DOWNCASE (char) +@@ -1685,7 +1685,7 @@ File: gcl-si.info, Node: Characters, N + returns CHAR. + + -- Function: STRING-CHAR-P (char) +- Package:LISP ++ Package:SI + + Returns T if CHAR can be stored in a string. In GCL, this function + always returns T since any character in GCL can be stored in a +@@ -1720,7 +1720,7 @@ File: gcl-si.info, Node: Characters, N + order; NIL otherwise. + + -- Constant: CHAR-HYPER-BIT +- Package:LISP The bit that indicates a hyper character. ++ Package:SI The bit that indicates a hyper character. + + -- Function: CODE-CHAR (code &optional (bits 0) (font 0)) + Package:LISP +@@ -1734,7 +1734,7 @@ File: gcl-si.info, Node: Characters, N + Returns the code attribute of CHAR. + + -- Constant: CHAR-CONTROL-BIT +- Package:LISP The bit that indicates a control character. ++ Package:SI The bit that indicates a control character. + + -- Function: CHAR-LESSP (char &rest more-chars) + Package:LISP +@@ -1744,7 +1744,7 @@ File: gcl-si.info, Node: Characters, N + upper-case equivalent is used. + + -- Function: CHAR-FONT (char) +- Package:LISP ++ Package:SI + + Returns the font attribute of CHAR. + +@@ -1761,7 +1761,7 @@ File: gcl-si.info, Node: Characters, N + order; NIL otherwise. + + -- Constant: CHAR-META-BIT +- Package:LISP The bit that indicates a meta character. ++ Package:SI The bit that indicates a meta character. + + -- Function: GRAPHIC-CHAR-P (char) + Package:LISP +@@ -1777,7 +1777,7 @@ File: gcl-si.info, Node: Characters, N + same. + + -- Constant: CHAR-BITS-LIMIT +- Package:LISP The upper exclusive bound on values produced by ++ Package:SI The upper exclusive bound on values produced by + CHAR-BITS. + + -- Function: CHARACTERP (x) +@@ -1802,13 +1802,13 @@ File: gcl-si.info, Node: Characters, N + Returns T if CHAR is an upper-case character; NIL otherwise. + + -- Function: CHAR-BIT (char name) +- Package:LISP ++ Package:SI + + Returns T if the named bit is on in the character CHAR; NIL + otherwise. In GCL, this function always returns NIL. + + -- Function: MAKE-CHAR (char &optional (bits 0) (font 0)) +- Package:LISP ++ Package:SI + + Returns a character object with the same code attribute as CHAR and + with the specified BITS and FONT attributes. +@@ -1875,7 +1875,7 @@ File: gcl-si.info, Node: Characters, N + Returns T if CHAR is either numeric or alphabetic; NIL otherwise. + + -- Function: CHAR-BITS (char) +- Package:LISP ++ Package:SI + + Returns the bits attribute (which is always 0 in GCL) of CHAR. + +@@ -1886,7 +1886,7 @@ File: gcl-si.info, Node: Characters, N + specified RADIX. Returns NIL if no such character exists. + + -- Function: SET-CHAR-BIT (char name newvalue) +- Package:LISP ++ Package:SI + + Returns a character just like CHAR except that the named bit is set + or cleared, according to whether NEWVALUE is non-NIL or NIL. This +@@ -2642,7 +2642,7 @@ File: gcl-si.info, Node: Streams and Re + Package:LISP + + Prints OBJECT in the mostly readable representation. Returns +- OBJECT. Equivalent to (WRITE OBJECT :STREAM STREAM :ESCAPE T). ++ OBJECT. Equivalent to (WRITE OBJECT :STREAM STREAM :ESCAPE T). + + -- Function: PRINC (object &optional (stream *standard-output*)) + Package:LISP +@@ -3226,7 +3226,7 @@ File: gcl-si.info, Node: Special Forms + Package:LISP List of all the lambda-list keywords used in GCL. + + -- Function: GET-SETF-METHOD (form) +- Package:LISP ++ Package:SI + + Returns the five values (or five 'gangs') constituting the SETF + method for FORM. See the doc of DEFINE-SETF-METHOD for the meanings +@@ -3373,7 +3373,7 @@ File: gcl-si.info, Node: Special Forms + (defun name lambda-list {decl | doc}* {form}*) + + Defines a function as the global function definition of the symbol +- NAME. The complete syntax of a lambda-list is: ({var}* [&optional ++ NAME. The complete syntax of a lambda-list is: ({var}* [&optional + {var | (var [initform [svar]])}*] [&rest var] [&key {var | ({var | + (keyword var)} [initform [svar]])}* [&allow-other-keys]] [&aux {var + | (var [initform])}*]) The doc-string DOC, if supplied, is saved as +@@ -3465,7 +3465,7 @@ File: gcl-si.info, Node: Special Forms + doc of PPRINT for the output-formatting. + + -- Variable: *EVALHOOK* +- Package:LISP If *EVALHOOK* is not NIL, its value must be a function ++ Package:SI If *EVALHOOK* is not NIL, its value must be a function + that can receive two arguments: a form to evaluate and an + environment. This function does the evaluation instead of EVAL. + +@@ -3586,7 +3586,7 @@ File: gcl-si.info, Node: Special Forms + + -- Function: APPLYHOOK (function args evalhookfn applyhookfn &optional + (env nil)) +- Package:LISP ++ Package:SI + + Applies FUNCTION to ARGS, with *EVALHOOK* bound to EVALHOOKFN and + with *APPLYHOOK* bound to APPLYHOOKFN. Ignores the hook function +@@ -3697,7 +3697,7 @@ File: gcl-si.info, Node: Special Forms + to NIL. + + -- Function: GET-SETF-METHOD-MULTIPLE-VALUE (form) +- Package:LISP Returns the five values (or five 'gangs') constituting ++ Package:SI Returns the five values (or five 'gangs') constituting + the SETF method for FORM. See the doc of DEFINE-SETF-METHOD for the + meanings of the gangs. The third value (i.e., the list of store + variables) may consist of any number of elements. See the doc of +@@ -3756,7 +3756,7 @@ File: gcl-si.info, Node: Special Forms + returns NIL. + + -- Macro: DEFINE-SETF-METHOD +- Package:LISP ++ Package:SI + + Syntax: + (define-setf-method access-fun defmacro-lambda-list {decl | doc}* +@@ -3776,7 +3776,7 @@ File: gcl-si.info, Node: Special Forms + (documentation 'NAME 'setf). + + -- Special Form: COMPILER-LET +- Package:LISP ++ Package:SI + + Syntax: + (compiler-let ({var | (var [value])}*) {form}*) +@@ -3839,7 +3839,7 @@ File: gcl-si.info, Node: Special Forms + STATEMENTs. + + -- Variable: *APPLYHOOK* +- Package:LISP Used to substitute another function for the implicit ++ Package:SI Used to substitute another function for the implicit + APPLY normally done within EVAL. If *APPLYHOOK* is not NIL, its + value must be a function which takes three arguments: a function to + be applied, a list of arguments, and an environment. This function +@@ -3933,7 +3933,7 @@ File: gcl-si.info, Node: Special Forms + from the UNWIND-PROTECT form. + + -- Function: EVALHOOK (form evalhookfn applyhookfn &optional (env nil)) +- Package:LISP ++ Package:SI + + Evaluates FORM with *EVALHOOK* bound to EVALHOOKFN and *APPLYHOOK* + bound to APPLYHOOKFN. Ignores these hooks once, for the top-level +@@ -4030,7 +4030,7 @@ File: gcl-si.info, Node: Compilation, + + -- Function: LINK (files image &optional post extra-libs (run-user-init + t) &aux raw init) +- Package:LISP ++ Package:COMPILER + + On systems where dlopen is used for relocations, one cannot make + custom images containing loaded binary object files simply by +@@ -4227,31 +4227,17 @@ keyword is supplied to compile-file and + arrays. Please note that lisp functions are not (yet) displayed + with their lisp names. Please see also the PROFILE function. + +- -- Function: GPROF-SET (begin end) +- Package:SYSTEM +- +- GCL now has preliminary support for profiling with gprof, an +- externally supplied profiling tool at the C level which typically +- accompanies gcc. Support must be enabled at compile time with +- -enable-gprof. This function sets the address range used by +- GPROF-START in specifying the section of the running program which +- is to be profiled. All subsequent calls to GPROF-START will use +- this new address range. By default, the range is set to begin at +- the starting address of the .text section, and to end at the +- current end of the running core. These default values can be +- restored by calling GPROF-SET with both argments set to 0. +- + -- Variable: *DEFAULT-SYSTEM-P* + Package:COMPILER Specifies the default setting of :SYSTEM-P used by + COMPILE. Defaults to NIL. + + -- Variable: *DEFAULT-C-FILE* + Package:COMPILER Specifies the default setting of :C-FILE used by +- COMPILE. Defaults to NIL. ++ COMPILE. Defaults to NIL. + + -- Variable: *DEFAULT-H-FILE* + Package:COMPILER Specifies the default setting of :H-FILE used by +- COMPILE. Defaults to NIL. ++ COMPILE. Defaults to NIL. + + -- Variable: *DEFAULT-DATA-FILE* + Package:COMPILER Specifies the default setting of :DATA-FILE used +@@ -4303,8 +4289,8 @@ File: gcl-si.info, Node: Symbols, Next + Package:LISP + + Look on property list of SYMBOL for property with specified +- INDICATOR. If found, splice this indicator and its value out of the +- plist, and return T. If not found, returns NIL with no side ++ INDICATOR. If found, splice this indicator and its value out of ++ the plist, and return T. If not found, returns NIL with no side + effects. + + -- Function: SYMBOL-PACKAGE (symbol) +@@ -4927,7 +4913,7 @@ Several environment variables affect GCL + + -- Environment Variable: GCL_MEM_BOUND + A positive integer bounding GCL's heap to 1<<(n+1) bytes. Trumps +- GCL_MEM_MULTIPLE. Defaults to sizeof(long)-1. ++ GCL_MEM_MULTIPLE. Defaults to sizeof(long)-1. + + -- Environment Variable: GCL_GC_ALLOC_MIN + A positive float indicating the minimum fraction of heap to be +@@ -4988,7 +4974,7 @@ File: gcl-si.info, Node: Structures, N + making a lisp structure correspond to a C structure. + + -- Function: HELP (&optional symbol) +- Package:LISP ++ Package:USER + + GCL specific: Prints the documentation associated with SYMBOL. With + no argument, this function prints the greeting message to GCL +@@ -5119,7 +5105,7 @@ File: gcl-si.info, Node: User Interface + Package:LISP + + Subtracts the second and all subsequent NUMBERs from the first +- NUMBER. With one arg, negates it. ++ NUMBER. With one arg, negates it. + + -- Macro: UNTRACE + Package:LISP +@@ -5150,7 +5136,7 @@ File: gcl-si.info, Node: User Interface + Evaluates FORM in the single-step mode and returns the value. + + -- Variable: *BREAK-ENABLE* +- Package:LISP GCL specific: When an error occurrs, control enters to ++ Package:SI GCL specific: When an error occurrs, control enters to + the break loop only if the value of this variable is non-NIL. + + -- Special Variable: / +@@ -5170,8 +5156,8 @@ File: gcl-si.info, Node: User Interface + Package:LISP Holds the I/O stream used by the GCL debugger. + + -- Variable: *BREAK-ON-WARNINGS* +- Package:LISP When the function WARN is called, control enters to +- the break loop only if the value of this varialbe is non-NIL. ++ Package:SI When the function WARN is called, control enters to the ++ break loop only if the value of this varialbe is non-NIL. + + -- Function: CERROR (continue-format-string error-format-string &rest + args) +@@ -5483,7 +5469,7 @@ File: gcl-si.info, Node: Type, Next: G + Returns T if X is of the type TYPE; NIL otherwise. + + -- Function: COMMONP (x) +- Package:LISP ++ Package:SI + + Returns T if X is a Common Lisp object; NIL otherwise. + +@@ -5548,7 +5534,7 @@ File: gcl-si.info, Node: GCL Specific, + *************** + + -- Function: SYSTEM (string) +- Package:LISP ++ Package:SI + + GCL specific: Executes a Shell command as if STRING is an input to + the Shell. Not all versions of GCL support this function. At +@@ -5580,13 +5566,8 @@ File: gcl-si.info, Node: GCL Specific, + Returns a string that identifies the machine version of the machine + on which GCL is currently running. + +- -- Function: BY () +- Package:LISP +- +- GCL specific: Exits from GCL. +- + -- Macro: DEFCFUN +- Package:LISP ++ Package:SI + + Syntax: + (defcfun header n {element}*) +@@ -5633,9 +5614,8 @@ File: gcl-si.info, Node: GCL Specific, + C-type: + { object | int | char | float | double } + +- + -- Macro: CLINES +- Package:LISP ++ Package:SI + + Syntax: + (clines {string}*) +@@ -5650,7 +5630,7 @@ File: gcl-si.info, Node: GCL Specific, + Trumps any limits specified in the environment. + + -- Function: ALLOCATE (type number &optional (really-allocate nil)) +- Package:LISP ++ Package:SI + + GCL specific: Sets the maximum number of pages for the type class + of the GCL implementation type TYPE to NUMBER. If REALLY-ALLOCATE +@@ -5658,7 +5638,7 @@ File: gcl-si.info, Node: GCL Specific, + be allocated immediately. + + -- Function: GBC (x) +- Package:LISP ++ Package:SI + + GCL specific: Invokes the garbage collector (GC) with the + collection level specified by X. NIL as the argument causes GC to +@@ -5666,7 +5646,7 @@ File: gcl-si.info, Node: GCL Specific, + everything. + + -- Function: SAVE (pathname) +- Package:LISP ++ Package:SI + + GCL specific: Saves the current GCL core image into a program file + specified by PATHNAME. This function depends on the version of GCL. +@@ -5675,7 +5655,7 @@ File: gcl-si.info, Node: GCL Specific, + permanent, and causes no future gc of currently loaded .o files. + + -- Function: HELP* (string &optional (package 'lisp)) +- Package:LISP ++ Package:USER + + GCL specific: Prints the documentation associated with those + symbols in the specified package whose print names contain STRING +@@ -5684,7 +5664,7 @@ File: gcl-si.info, Node: GCL Specific, + searched. + + -- Macro: DEFLA +- Package:LISP ++ Package:SI + + Syntax: + (defla name lambda-list {decl | doc}* {form}*) +@@ -5701,7 +5681,7 @@ File: gcl-si.info, Node: GCL Specific, + DECL-SPECs. + + -- Macro: DEFENTRY +- Package:LISP ++ Package:SI + + Syntax: + (defentry name arg-types c-function) +@@ -5710,8 +5690,8 @@ File: gcl-si.info, Node: GCL Specific, + consists of a calling sequence to the C language function specified + by C-FUNCTION. The interpreter ignores this form. The ARG-TYPES + specifies the C types of the arguments which C-FUNCTION requires. +- The list of allowed types is (object char int float double string). +- Code will be produced to coerce from a lisp object to the ++ The list of allowed types is (object char int long float double ++ string). Code will be produced to coerce from a lisp object to the + appropriate type before passing the argument to the C-FUNCTION. The + c-function should be of the form (c-result-type c-fname) where + c-result-type is a member of (void object char int float double +@@ -5753,7 +5733,6 @@ File: gcl-si.info, Node: GCL Specific, + (setf (aref a n) (code-char 0))) + a) + +- + -- Function: COPY-ARRAY-PORTION (x,y,i1,i2,n1) + Package:SI Copy elements from X to Y starting at X[i1] to Y[i2] and + doing N1 elements if N1 is supplied otherwise, doing the length of +@@ -5761,12 +5740,12 @@ File: gcl-si.info, Node: GCL Specific, + has implementation dependent results. + + -- Function: BYE ( &optional (exit-status 0)) +- Package:LISP ++ Package:SI + + GCL specific: Exits from GCL with exit-status. + + -- Function: USE-FAST-LINKS (turn-on) +- Package:LISP ++ Package:SI + + GCL specific: If TURN-ON is not nil, the fast link mechanism is + enabled, so that ordinary function calls will not appear in the +@@ -5841,7 +5820,6 @@ parentheses. + m (- (* (- i 1) (- (* 2 i) 1) (- (* 2 i) 3))) + tt (truncate (* m tt) (* d (the integer (expt i 3)))))))) + +- +  + File: gcl-si.info, Node: C Interface, Next: System Definitions, Prev: GCL Specific, Up: Top + +@@ -5897,7 +5875,7 @@ File: gcl-si.info, Node: External Share + + Complex float and complex double types can be access via: + +- :fcomplex :dcomples ++ :fcomplex :dcomplex + + Pointers to types available are + +@@ -6385,7 +6363,6 @@ File: gcl-si.info, Node: External Share + > + + +- +  + File: gcl-si.info, Node: System Definitions, Next: Debugging, Prev: C Interface, Up: Top + +@@ -6425,12 +6402,6 @@ File: gcl-si.info, Node: System Definit + that it will only check for types which currently include NAME. + After calling this the defstruct should not be altered. + +- -- Function: MAXIMUM-ALLOCATABLE-PAGES (type) +- Package:SI +- +- GCL specific: Returns the current maximum number of pages for the +- type class of the GCL implementation type TYPE. +- + -- Function: ALLOCATED-RELOCATABLE-PAGES () + Package:SI + +@@ -6442,12 +6413,6 @@ File: gcl-si.info, Node: System Definit + + Give SYMBOL the VALUE on INDICATOR property. + +- -- Function: ALLOCATED-PAGES (type) +- Package:SI +- +- GCL specific: Returns the number of pages currently allocated for +- the type class of the GCL implementation type TYPE. +- + -- Function: ALLOCATE-RELOCATABLE-PAGES (number) + Package:SI + +@@ -6717,17 +6682,6 @@ File: gcl-si.info, Node: System Definit + records how many times the garbage collector has been called for + each implementation type. + +- -- Function: CATCH-BAD-SIGNALS () +- Package:SI +- +- GCL/BSD specific: Installs a signal catcher for bad signals: +- SIGILL, SIGIOT, SIGEMT, SIGBUS, SIGSEGV, SIGSYS. The signal +- catcher, upon catching the signal, signals an error (and enter the +- break-level). Since the internal memory of GCL may be broken, the +- user should check the signal and exit from GCL if necessary. When +- the signal is caught during garbage collection, GCL terminates +- immediately. +- + -- Function: RESET-STACK-LIMITS () + Package:SI + +@@ -6741,7 +6695,7 @@ File: gcl-si.info, Node: System Definit + non-NIL, the garbage collector prints some information on the + terminal. Usually SI:*GBC-MESSAGE* should be set NIL. + +- -- Variable: *GBC-NOTIFY* ++ -- Variable: *NOTIFY-GBC* + Package:SI GCL specific: If the value is non-NIL, the garbage + collector prints a very brief one line message about the area + causing the collection, and the time spent in internal time units. +@@ -6751,7 +6705,7 @@ File: gcl-si.info, Node: System Definit + argument TYPE which is a lisp variable indicating the TYPE which + caused the current collection. + +- -- Funcition: ALLOCATED (type) ++ -- Function: ALLOCATED (type) + Package:SI + + Returns 6 values: +@@ -6835,11 +6789,6 @@ File: gcl-si.info, Node: System Definit + as closing files and resetting io streams. It would not be + possible to continue normally. + +- -- Function: UNCATCH-BAD-SIGNALS () +- Package:SI +- +- GCL/BSD specific: Undoes the effect of SI:CATCH-BAD-SIGNALS. +- + -- Function: VS (i) + Package:SI + +@@ -6857,11 +6806,6 @@ File: gcl-si.info, Node: System Definit + GCL specific: Returns the FIXNUM-th argument on the command line + that invoked the GCL process. + +- -- Variable: *DEFAULT-TIME-ZONE* +- Package:SI GCL specific: Holds the default time zone. The initial +- value of SI:*DEFAULT- TIME-ZONE* is 6 (the time zone of Austin, +- Texas). +- + -- Function: GETENV (string) + Package:SI + +@@ -6898,7 +6842,7 @@ File: gcl-si.info, Node: System Definit + + GCL specific: Starts the standard top-level listener of GCL. When + the GCL process is invoked, it calls SI:TOP-LEVEL by (FUNCALL +- 'SI:TOP-LEVEL). To change the top-level of GCL, redefine ++ 'SI:TOP-LEVEL). To change the top-level of GCL, redefine + SI:TOP-LEVEL and save the core imange in a file. When the saved + imange is invoked, it will start the redefined top-level. + +@@ -6908,38 +6852,6 @@ File: gcl-si.info, Node: System Definit + GCL specific: Returns the value stack index of the i-th entity in + the frame stack. + +- -- Function: WRITE-DEBUG-SYMBOLS (start file &key (main-file +- "/usr/local/schelter/xgcl/unixport/raw_gcl") (output-file +- "debug-symbols.o" )) +- Package:SI +- +- Write out a file of debug-symbols using address START as the place +- where FILE will be loaded into the running executable MAIN-FILE. +- The last is a keyword argument. +- +- -- Function: PROF (x y) +- Package:SI +- +- These functions in the SI package are GCL specific, and allow +- monitoring the run time of functions loaded into GCL, as well as +- the basic functions. Sample Usage: (si::set-up-profile 1000000) +- (si::prof 0 90) run program (si::prof 0 0) ;; turn off profile +- (si::display-prof) (si::clear-profile) (si::prof 0 90) ;; start +- profile again run program .. Profile can be stopped with (si::prof +- 0 0) and restarted with (si::prof 0 90) The START-ADDRESS will +- correspond to the beginning of the profile array, and the SCALE +- will mean that 256 bytes of code correspond to SCALE bytes in the +- profile array. +- +- Thus if the profile array is 1,000,000 bytes long and the code +- segment is 5 megabytes long you can profile the whole thing using a +- scale of 50 Note that long runs may result in overflow, and so an +- understating of the time in a function. +- +- You must run intensively however since, with a scale of 128 it +- takes 6,000,000 times through a loop to overflow the sampling in +- one part of the code. +- + -- Function: CATCH-FATAL (i) + Package:SI + +@@ -7034,7 +6946,7 @@ File: gcl-si.info, Node: System Definit + + If MIN-PAGES is 0, then this type will not be swept by SGC. + Otherwise this is the minimum number of pages to make available to +- SGC. MAX-PAGES is the upper limit of such pages. Only pages with ++ SGC. MAX-PAGES is the upper limit of such pages. Only pages with + PERCENT-FREE objects on them, will be assigned to SGC. A list of + the previous values for min, max and percent are returned. + +@@ -7397,7 +7309,6 @@ example: + (match-beginning 3) ==> -1 + (match-end 3) ==> -1 + +- + In the above example the return value of ‘1’ (which is ‘> -1’) + indicates that a match was found. The entire match runs from 1 to 4. + Rule 4 specifies that (ab|a) gets first shot at the input string and +@@ -7642,7 +7553,7 @@ File: gcl-si.info, Node: Compiler Defin + (compile-file "foo2.lisp") + + This would create foo1.fn and foo2.fn. These may be loaded using +- LOAD. Each time compile-file is called the data base is cleared. ++ LOAD. Each time compile-file is called the data base is cleared. + Immediately after the compilation, the data base consists of data + from the compilation. Thus if you wished to find functions called + but not defined in the current file, you could do +@@ -7693,8 +7604,7 @@ File: gcl-si.info, Node: Compiler Defin + or + (mapcar 'load (directory "*.fn")) (compiler::list-undefined-functions) + +- +- -- Function: COMPILER-DEFAULT-TYPE (pathname) ++ -- Function: *COMPILER-DEFAULT-TYPE* (pathname) + Package:COMPILER + + Allows you to set the default file extension for compiler source +@@ -7737,13 +7647,6 @@ File: gcl-si.info, Node: Compiler Defin + + > + +- +- -- Function: COMPILER-RESET-TYPE () +- Package:COMPILER +- +- Resets the default compiler input file extension to the GCL +- historical value of #".lsp". +- + -- Variable: *CC* + Package:COMPILER Has value a string which controls which C compiler + is used by GCL. Usually this string is obtained from the +@@ -8290,8 +8193,10 @@ Appendix A Function Index + + * -: User Interface. (line 10) + * *: Numbers. (line 557) +-* *MAKE-CONSTANT: System Definitions. (line 292) +-* *MAKE-SPECIAL: System Definitions. (line 387) ++* *COMPILER-DEFAULT-TYPE*: Compiler Definitions. ++ (line 86) ++* *MAKE-CONSTANT: System Definitions. (line 280) ++* *MAKE-SPECIAL: System Definitions. (line 364) + * /: Numbers. (line 199) + * /=: Numbers. (line 72) + * +: Numbers. (line 658) +@@ -8303,26 +8208,25 @@ Appendix A Function Index + * 1-: Numbers. (line 411) + * 1+: Numbers. (line 208) + * ABS: Numbers. (line 707) +-* ACCEPT: System Definitions. (line 894) ++* ACCEPT: System Definitions. (line 829) + * ACCEPT-SOCKET-CONNECTION: System Definitions. (line 18) + * ACONS: Lists. (line 254) + * ACOS: Numbers. (line 603) + * ACOSH: Numbers. (line 631) +-* ADDRESS: System Definitions. (line 405) ++* ADDRESS: System Definitions. (line 382) + * ADJOIN: Lists. (line 383) + * ADJUST-ARRAY: Sequences and Arrays and Hash Tables. + (line 549) + * ADJUSTABLE-ARRAY-P: Sequences and Arrays and Hash Tables. + (line 250) +-* ALLOCATE: GCL Specific. (line 108) ++* ALLOCATE: GCL Specific. (line 102) + * ALLOCATE-CONTIGUOUS-PAGES: System Definitions. (line 24) +-* ALLOCATE-GROWTH: System Definitions. (line 652) +-* ALLOCATE-RELOCATABLE-PAGES: System Definitions. (line 62) +-* ALLOCATE-SGC: System Definitions. (line 643) +-* ALLOCATED: System Definitions. (line 365) +-* ALLOCATED-CONTIGUOUS-PAGES: System Definitions. (line 68) +-* ALLOCATED-PAGES: System Definitions. (line 56) +-* ALLOCATED-RELOCATABLE-PAGES: System Definitions. (line 45) ++* ALLOCATE-GROWTH: System Definitions. (line 587) ++* ALLOCATE-RELOCATABLE-PAGES: System Definitions. (line 50) ++* ALLOCATE-SGC: System Definitions. (line 578) ++* ALLOCATED: System Definitions. (line 342) ++* ALLOCATED-CONTIGUOUS-PAGES: System Definitions. (line 56) ++* ALLOCATED-RELOCATABLE-PAGES: System Definitions. (line 39) + * ALPHA-CHAR-P: Characters. (line 151) + * ALPHANUMERICP: Characters. (line 230) + * AND: Special Forms and Functions. +@@ -8336,8 +8240,8 @@ Appendix A Function Index + * APROPOS-LIST: Symbols. (line 315) + * AREF: Sequences and Arrays and Hash Tables. + (line 634) +-* ARGC: System Definitions. (line 418) +-* ARGV: System Definitions. (line 465) ++* ARGC: System Definitions. (line 395) ++* ARGV: System Definitions. (line 437) + * ARRAY-DIMENSION: Sequences and Arrays and Hash Tables. + (line 108) + * ARRAY-DIMENSIONS: Sequences and Arrays and Hash Tables. +@@ -8366,8 +8270,8 @@ Appendix A Function Index + * ATAN: Numbers. (line 456) + * ATANH: Numbers. (line 471) + * ATOM: Lists. (line 559) +-* BDS-VAL: System Definitions. (line 302) +-* BDS-VAR: System Definitions. (line 109) ++* BDS-VAL: System Definitions. (line 290) ++* BDS-VAR: System Definitions. (line 97) + * BIT: Sequences and Arrays and Hash Tables. + (line 618) + * BIT-AND: Numbers. (line 284) +@@ -8395,10 +8299,9 @@ Appendix A Function Index + * BOTH-CASE-P: Characters. (line 20) + * BOUNDP: Symbols. (line 230) + * BREAK: User Interface. (line 120) +-* BREAK-FUNCTION: System Definitions. (line 782) ++* BREAK-FUNCTION: System Definitions. (line 717) + * BUTLAST: Lists. (line 281) +-* BY: GCL Specific. (line 39) +-* BYE: GCL Specific. (line 219) ++* BYE: GCL Specific. (line 212) + * BYTE: Numbers. (line 251) + * BYTE-POSITION: Numbers. (line 298) + * BYTE-SIZE: Numbers. (line 341) +@@ -8421,8 +8324,7 @@ Appendix A Function Index + (line 528) + * CATCH: Special Forms and Functions. + (line 487) +-* CATCH-BAD-SIGNALS: System Definitions. (line 331) +-* CATCH-FATAL: System Definitions. (line 554) ++* CATCH-FATAL: System Definitions. (line 489) + * CCASE: Special Forms and Functions. + (line 62) + * CDAAAR: Lists. (line 482) +@@ -8466,14 +8368,14 @@ Appendix A Function Index + * CHAR>=: Characters. (line 115) + * CHARACTER: Characters. (line 174) + * CHARACTERP: Characters. (line 141) +-* CHDIR: System Definitions. (line 251) ++* CHDIR: System Definitions. (line 239) + * CHECK-TYPE: Type. (line 39) + * CIS: Numbers. (line 717) + * CLEAR-INPUT: Streams and Reading. (line 284) + * CLEAR-OUTPUT: Streams and Reading. (line 162) +-* CLINES: GCL Specific. (line 93) ++* CLINES: GCL Specific. (line 87) + * CLOSE: Streams and Reading. (line 393) +-* CLOSE-FASD: System Definitions. (line 724) ++* CLOSE-FASD: System Definitions. (line 659) + * CLRHASH: Sequences and Arrays and Hash Tables. + (line 412) + * CODE-CHAR: Characters. (line 83) +@@ -8481,14 +8383,10 @@ Appendix A Function Index + * COMMONP: Type. (line 27) + * COMPILE: Compilation. (line 6) + * COMPILE-FILE: Compilation. (line 77) +-* COMPILED-FUNCTION-NAME: System Definitions. (line 125) ++* COMPILED-FUNCTION-NAME: System Definitions. (line 113) + * COMPILED-FUNCTION-P: Compilation. (line 196) +-* COMPILER-DEFAULT-TYPE: Compiler Definitions. +- (line 87) + * COMPILER-LET: Special Forms and Functions. + (line 559) +-* COMPILER-RESET-TYPE: Compiler Definitions. +- (line 131) + * COMPLEX: Numbers. (line 568) + * COMPLEXP: Numbers. (line 507) + * CONCATENATE: Sequences and Arrays and Hash Tables. +@@ -8500,12 +8398,12 @@ Appendix A Function Index + * CONSP: Lists. (line 55) + * CONSTANTP: Type. (line 16) + * COPY-ALIST: Lists. (line 287) +-* COPY-ARRAY-PORTION: GCL Specific. (line 213) ++* COPY-ARRAY-PORTION: GCL Specific. (line 206) + * COPY-LIST: Lists. (line 190) + * COPY-READTABLE: Streams and Reading. (line 447) + * COPY-SEQ: Sequences and Arrays and Hash Tables. + (line 17) +-* COPY-STREAM: System Definitions. (line 257) ++* COPY-STREAM: System Definitions. (line 245) + * COPY-SYMBOL: Symbols. (line 131) + * COPY-TREE: Lists. (line 554) + * COS: Numbers. (line 443) +@@ -8518,26 +8416,26 @@ Appendix A Function Index + (line 380) + * CTYPECASE: Special Forms and Functions. + (line 733) +-* DBL: System Definitions. (line 768) ++* DBL: System Definitions. (line 703) + * DECF: Numbers. (line 448) + * DECLARE: Special Forms and Functions. + (line 173) + * DECODE-FLOAT: Numbers. (line 366) + * DECODE-UNIVERSAL-TIME: Operating System Definitions. + (line 42) +-* DEFCFUN: GCL Specific. (line 44) ++* DEFCFUN: GCL Specific. (line 39) + * DEFCONSTANT: Special Forms and Functions. + (line 675) + * DEFDLFUN: External Shared Libraries. + (line 6) +-* DEFENTRY: GCL Specific. (line 159) +-* DEFINE-COMPILER-MACRO: System Definitions. (line 760) +-* DEFINE-INLINE-FUNCTION: System Definitions. (line 750) ++* DEFENTRY: GCL Specific. (line 153) ++* DEFINE-COMPILER-MACRO: System Definitions. (line 695) ++* DEFINE-INLINE-FUNCTION: System Definitions. (line 685) + * DEFINE-MODIFY-MACRO: Special Forms and Functions. + (line 497) + * DEFINE-SETF-METHOD: Special Forms and Functions. + (line 539) +-* DEFLA: GCL Specific. (line 142) ++* DEFLA: GCL Specific. (line 136) + * DEFMACRO: Special Forms and Functions. + (line 216) + * DEFPARAMETER: Special Forms and Functions. +@@ -8569,7 +8467,7 @@ Appendix A Function Index + (line 67) + * DIRECTORY-NAMESTRING: Streams and Reading. (line 455) + * DISASSEMBLE: Characters. (line 59) +-* DISPLACED-ARRAY-P: System Definitions. (line 459) ++* DISPLACED-ARRAY-P: System Definitions. (line 431) + * DO: Streams and Reading. (line 188) + * DO-ALL-SYMBOLS: Iteration and Tests. (line 28) + * DO-EXTERNAL-SYMBOLS: Iteration and Tests. (line 6) +@@ -8602,7 +8500,7 @@ Appendix A Function Index + * EQUALP: Iteration and Tests. (line 74) + * ERROR: Special Forms and Functions. + (line 691) +-* ERROR-SET: System Definitions. (line 115) ++* ERROR-SET: System Definitions. (line 103) + * ETYPECASE: Special Forms and Functions. + (line 120) + * EVAL: Special Forms and Functions. +@@ -8616,12 +8514,12 @@ Appendix A Function Index + * EXP: Numbers. (line 360) + * EXPORT: Symbols. (line 208) + * EXPT: Numbers. (line 616) +-* FASLINK: System Definitions. (line 483) ++* FASLINK: System Definitions. (line 450) + * FBOUNDP: Symbols. (line 164) + * FCEILING: Numbers. (line 216) + * FFLOOR: Numbers. (line 642) + * FIFTH: Lists. (line 40) +-* FILE: System Definitions. (line 220) ++* FILE: System Definitions. (line 208) + * FILE-AUTHOR: Operating System Definitions. + (line 24) + * FILE-LENGTH: Streams and Reading. (line 102) +@@ -8641,11 +8539,11 @@ Appendix A Function Index + * FIND-IF-NOT: Sequences and Arrays and Hash Tables. + (line 695) + * FIND-PACKAGE: Symbols. (line 307) +-* FIND-SHARING-TOP: System Definitions. (line 736) ++* FIND-SHARING-TOP: System Definitions. (line 671) + * FIND-SYMBOL: Symbols. (line 149) + * FINISH-OUTPUT: Streams and Reading. (line 172) + * FIRST: Lists. (line 372) +-* FIXNUMP: System Definitions. (line 297) ++* FIXNUMP: System Definitions. (line 285) + * FLET: Special Forms and Functions. + (line 264) + * FLOAT: Numbers. (line 534) +@@ -8659,15 +8557,15 @@ Appendix A Function Index + * FORCE-OUTPUT: Streams and Reading. (line 126) + * FORMAT: Streams and Reading. (line 519) + * FOURTH: Lists. (line 318) +-* FP-INPUT-STREAM: System Definitions. (line 798) +-* FP-OUTPUT-STREAM: System Definitions. (line 804) +-* FREAD: System Definitions. (line 598) ++* FP-INPUT-STREAM: System Definitions. (line 733) ++* FP-OUTPUT-STREAM: System Definitions. (line 739) ++* FREAD: System Definitions. (line 533) + * FREEZE-DEFSTRUCT: System Definitions. (line 32) + * FRESH-LINE: Streams and Reading. (line 488) + * FROUND: Numbers. (line 380) +-* FRS-BDS: System Definitions. (line 280) +-* FRS-IHS: System Definitions. (line 318) +-* FRS-VS: System Definitions. (line 516) ++* FRS-BDS: System Definitions. (line 268) ++* FRS-IHS: System Definitions. (line 306) ++* FRS-VS: System Definitions. (line 483) + * FTRUNCATE: Numbers. (line 169) + * FUNCALL: Special Forms and Functions. + (line 518) +@@ -8675,9 +8573,9 @@ Appendix A Function Index + (line 354) + * FUNCTIONP: Special Forms and Functions. + (line 253) +-* FWRITE: System Definitions. (line 590) +-* GBC: GCL Specific. (line 116) +-* GBC-TIME: System Definitions. (line 581) ++* FWRITE: System Definitions. (line 525) ++* GBC: GCL Specific. (line 110) ++* GBC-TIME: System Definitions. (line 516) + * GCD: Numbers. (line 763) + * GENSYM: Symbols. (line 6) + * GENTEMP: Symbols. (line 247) +@@ -8685,7 +8583,7 @@ Appendix A Function Index + * GET-DECODED-TIME: Operating System Definitions. + (line 6) + * GET-DISPATCH-MACRO-CHARACTER: Streams and Reading. (line 470) +-* GET-HOLE-SIZE: System Definitions. (line 80) ++* GET-HOLE-SIZE: System Definitions. (line 68) + * GET-INTERNAL-REAL-TIME: Operating System Definitions. + (line 169) + * GET-INTERNAL-RUN-TIME: Operating System Definitions. +@@ -8697,17 +8595,16 @@ Appendix A Function Index + (line 9) + * GET-SETF-METHOD-MULTIPLE-VALUE: Special Forms and Functions. + (line 480) +-* GET-STRING-INPUT-STREAM-INDEX: System Definitions. (line 98) ++* GET-STRING-INPUT-STREAM-INDEX: System Definitions. (line 86) + * GET-UNIVERSAL-TIME: Operating System Definitions. + (line 144) +-* GETENV: System Definitions. (line 476) ++* GETENV: System Definitions. (line 443) + * GETF: Lists. (line 424) + * GETHASH: Sequences and Arrays and Hash Tables. + (line 297) + * GO: Special Forms and Functions. + (line 604) + * GPROF-QUIT: Compilation. (line 210) +-* GPROF-SET: Compilation. (line 221) + * GPROF-START: Compilation. (line 201) + * GRAPHIC-CHAR-P: Characters. (line 124) + * HASH-TABLE-COUNT: Sequences and Arrays and Hash Tables. +@@ -8715,21 +8612,21 @@ Appendix A Function Index + * HASH-TABLE-P: Sequences and Arrays and Hash Tables. + (line 375) + * HELP: Structures. (line 33) +-* HELP*: GCL Specific. (line 133) ++* HELP*: GCL Specific. (line 127) + * HOST-NAMESTRING: Operating System Definitions. + (line 13) + * IDENTITY: Special Forms and Functions. + (line 665) + * IF: Special Forms and Functions. + (line 696) +-* IHS-FUN: System Definitions. (line 286) +-* IHS-VS: System Definitions. (line 136) ++* IHS-FUN: System Definitions. (line 274) ++* IHS-VS: System Definitions. (line 124) + * IMAGPART: Numbers. (line 422) + * IMPORT: Symbols. (line 278) + * IN-PACKAGE: Symbols. (line 176) + * INCF: Numbers. (line 115) + * INFO: Doc. (line 12) +-* INIT-SYSTEM: System Definitions. (line 263) ++* INIT-SYSTEM: System Definitions. (line 251) + * INPUT-STREAM-P: Streams and Reading. (line 410) + * INSPECT: User Interface. (line 82) + * INT-CHAR: Numbers. (line 58) +@@ -8737,7 +8634,7 @@ Appendix A Function Index + * INTEGER-LENGTH: Numbers. (line 581) + * INTEGERP: Numbers. (line 427) + * INTERN: Symbols. (line 201) +-* INTERPRET: System Definitions. (line 228) ++* INTERPRET: System Definitions. (line 216) + * INTERSECTION: Lists. (line 215) + * ISQRT: Numbers. (line 732) + * KEYWORDP: Symbols. (line 14) +@@ -8824,7 +8721,7 @@ Appendix A Function Index + * MAKE-STRING-INPUT-STREAM: Streams and Reading. (line 48) + * MAKE-STRING-INPUT-STREAM <1>: User Interface. (line 29) + * MAKE-STRING-OUTPUT-STREAM: Streams and Reading. (line 583) +-* MAKE-STRING-OUTPUT-STREAM-FROM-STRING: System Definitions. (line 392) ++* MAKE-STRING-OUTPUT-STREAM-FROM-STRING: System Definitions. (line 369) + * MAKE-SYMBOL: Symbols. (line 67) + * MAKE-SYNONYM-STREAM: Streams and Reading. (line 589) + * MAKE-TWO-WAY-STREAM: Streams and Reading. (line 437) +@@ -8839,11 +8736,10 @@ Appendix A Function Index + * MAPL: Lists. (line 113) + * MAPLIST: Lists. (line 524) + * MASK-FIELD: Numbers. (line 110) +-* MATCH-BEGINNING: System Definitions. (line 854) +-* MATCH-END: System Definitions. (line 861) ++* MATCH-BEGINNING: System Definitions. (line 789) ++* MATCH-END: System Definitions. (line 796) + * MAX: Numbers. (line 515) +-* MAXIMUM-ALLOCATABLE-PAGES: System Definitions. (line 39) +-* MAXIMUM-CONTIGUOUS-PAGES: System Definitions. (line 74) ++* MAXIMUM-CONTIGUOUS-PAGES: System Definitions. (line 62) + * MEMBER: Lists. (line 590) + * MEMBER-IF: Lists. (line 548) + * MEMBER-IF-NOT: Lists. (line 454) +@@ -8868,12 +8764,12 @@ Appendix A Function Index + (line 648) + * NAME-CHAR: Characters. (line 6) + * NAMESTRING: Streams and Reading. (line 382) +-* NANI: System Definitions. (line 424) ++* NANI: System Definitions. (line 401) + * NBUTLAST: Lists. (line 97) + * NCONC: Lists. (line 45) + * NINTERSECTION: Lists. (line 6) + * NINTH: Lists. (line 477) +-* NLOAD: System Definitions. (line 775) ++* NLOAD: System Definitions. (line 710) + * NOT: Special Forms and Functions. + (line 670) + * NOTANY: Sequences and Arrays and Hash Tables. +@@ -8909,12 +8805,12 @@ Appendix A Function Index + * NUNION: Lists. (line 274) + * ODDP: Numbers. (line 722) + * OPEN: Streams and Reading. (line 22) +-* OPEN-FASD: System Definitions. (line 684) ++* OPEN-FASD: System Definitions. (line 619) + * OPEN-NAMED-SOCKET: System Definitions. (line 11) + * OR: Special Forms and Functions. + (line 723) + * OUTPUT-STREAM-P: Streams and Reading. (line 252) +-* OUTPUT-STREAM-STRING: System Definitions. (line 92) ++* OUTPUT-STREAM-STRING: System Definitions. (line 80) + * PACKAGE-NAME: Symbols. (line 302) + * PACKAGE-NICKNAMES: Symbols. (line 273) + * PACKAGE-SHADOWING-SYMBOLS: Symbols. (line 195) +@@ -8951,8 +8847,7 @@ Appendix A Function Index + * PRINT: Streams and Reading. (line 112) + * PROBE-FILE: Streams and Reading. (line 643) + * PROCLAIM: Compilation. (line 184) +-* PROCLAMATION: GCL Specific. (line 152) +-* PROF: System Definitions. (line 531) ++* PROCLAMATION: GCL Specific. (line 146) + * PROG: Special Forms and Functions. + (line 613) + * PROG*: Special Forms and Functions. +@@ -8971,7 +8866,7 @@ Appendix A Function Index + * PSETQ: Symbols. (line 73) + * PUSH: Lists. (line 349) + * PUSHNEW: Lists. (line 395) +-* PUTPROP: System Definitions. (line 51) ++* PUTPROP: System Definitions. (line 45) + * QUOTE: Special Forms and Functions. + (line 308) + * RANDOM: Numbers. (line 809) +@@ -8987,7 +8882,7 @@ Appendix A Function Index + * READ-CHAR: Streams and Reading. (line 239) + * READ-CHAR-NO-HANG: Streams and Reading. (line 481) + * READ-DELIMITED-LIST: Streams and Reading. (line 677) +-* READ-FASD-TOP: System Definitions. (line 717) ++* READ-FASD-TOP: System Definitions. (line 652) + * READ-FROM-STRING: Streams and Reading. (line 203) + * READ-LINE: Streams and Reading. (line 318) + * READ-PRESERVING-WHITESPACE: Streams and Reading. (line 72) +@@ -9017,8 +8912,8 @@ Appendix A Function Index + (line 396) + * REQUIRE: Operating System Definitions. + (line 90) +-* RESET-GBC-COUNT: System Definitions. (line 324) +-* RESET-STACK-LIMITS: System Definitions. (line 342) ++* RESET-GBC-COUNT: System Definitions. (line 312) ++* RESET-STACK-LIMITS: System Definitions. (line 319) + * REST: Lists. (line 242) + * RETURN: Special Forms and Functions. + (line 429) +@@ -9033,9 +8928,9 @@ Appendix A Function Index + * ROUND: Numbers. (line 543) + * RPLACA: Lists. (line 264) + * RPLACD: Lists. (line 449) +-* RUN-PROCESS: System Definitions. (line 828) +-* SAVE: GCL Specific. (line 124) +-* SAVE-SYSTEM: System Definitions. (line 437) ++* RUN-PROCESS: System Definitions. (line 763) ++* SAVE: GCL Specific. (line 118) ++* SAVE-SYSTEM: System Definitions. (line 414) + * SBIT: Sequences and Arrays and Hash Tables. + (line 34) + * SCALE-FLOAT: Numbers. (line 626) +@@ -9048,21 +8943,21 @@ Appendix A Function Index + * SET-DIFFERENCE: Lists. (line 530) + * SET-DISPATCH-MACRO-CHARACTER: Streams and Reading. (line 85) + * SET-EXCLUSIVE-OR: Lists. (line 407) +-* SET-HOLE-SIZE: System Definitions. (line 275) +-* SET-LOG-MAXPAGE-BOUND: GCL Specific. (line 102) ++* SET-HOLE-SIZE: System Definitions. (line 263) ++* SET-LOG-MAXPAGE-BOUND: GCL Specific. (line 96) + * SET-MACRO-CHARACTER: Streams and Reading. (line 119) + * SET-SYNTAX-FROM-CHAR: Streams and Reading. (line 403) + * SETF: Special Forms and Functions. + (line 27) + * SETQ: Symbols. (line 101) + * SEVENTH: Lists. (line 173) +-* SGC-ON: System Definitions. (line 607) ++* SGC-ON: System Definitions. (line 542) + * SHADOW: Symbols. (line 157) + * SHADOWING-IMPORT: Symbols. (line 36) + * SHIFTF: Numbers. (line 265) + * SHORT-SITE-NAME: Operating System Definitions. + (line 61) +-* SIGNATURE: System Definitions. (line 224) ++* SIGNATURE: System Definitions. (line 212) + * SIGNUM: Numbers. (line 6) + * SIMPLE-BIT-VECTOR-P: Sequences and Arrays and Hash Tables. + (line 568) +@@ -9076,7 +8971,7 @@ Appendix A Function Index + * SLEEP: Operating System Definitions. + (line 201) + * SOCKET: System Definitions. (line 6) +-* SOCKET <1>: System Definitions. (line 864) ++* SOCKET <1>: System Definitions. (line 799) + * SOFTWARE-TYPE: Operating System Definitions. + (line 189) + * SOFTWARE-VERSION: Operating System Definitions. +@@ -9087,7 +8982,7 @@ Appendix A Function Index + (line 371) + * SPECIAL-FORM-P: Special Forms and Functions. + (line 325) +-* SPECIALP: System Definitions. (line 86) ++* SPECIALP: System Definitions. (line 74) + * SQRT: Numbers. (line 621) + * STABLE-SORT: Sequences and Arrays and Hash Tables. + (line 645) +@@ -9100,7 +8995,7 @@ Appendix A Function Index + * STRING-CAPITALIZE: Sequences and Arrays and Hash Tables. + (line 39) + * STRING-CHAR-P: Characters. (line 45) +-* STRING-CONCATENATE: System Definitions. (line 103) ++* STRING-CONCATENATE: System Definitions. (line 91) + * STRING-DOWNCASE: Sequences and Arrays and Hash Tables. + (line 611) + * STRING-EQUAL: Sequences and Arrays and Hash Tables. +@@ -9111,7 +9006,7 @@ Appendix A Function Index + (line 684) + * STRING-LESSP: Sequences and Arrays and Hash Tables. + (line 746) +-* STRING-MATCH: System Definitions. (line 842) ++* STRING-MATCH: System Definitions. (line 777) + * STRING-NOT-EQUAL: Sequences and Arrays and Hash Tables. + (line 120) + * STRING-NOT-GREATERP: Sequences and Arrays and Hash Tables. +@@ -9120,7 +9015,7 @@ Appendix A Function Index + (line 623) + * STRING-RIGHT-TRIM: Sequences and Arrays and Hash Tables. + (line 126) +-* STRING-TO-OBJECT: System Definitions. (line 308) ++* STRING-TO-OBJECT: System Definitions. (line 296) + * STRING-TRIM: Sequences and Arrays and Hash Tables. + (line 478) + * STRING-UPCASE: Sequences and Arrays and Hash Tables. +@@ -9139,7 +9034,7 @@ Appendix A Function Index + (line 94) + * STRINGP: Sequences and Arrays and Hash Tables. + (line 206) +-* STRUCTUREP: System Definitions. (line 130) ++* STRUCTUREP: System Definitions. (line 118) + * SUBLIS: Lists. (line 507) + * SUBSEQ: Sequences and Arrays and Hash Tables. + (line 11) +@@ -9178,7 +9073,7 @@ Appendix A Function Index + (line 759) + * TIME: Operating System Definitions. + (line 181) +-* TOP-LEVEL: System Definitions. (line 507) ++* TOP-LEVEL: System Definitions. (line 474) + * TRACE: User Interface. (line 131) + * TREE-EQUAL: Lists. (line 414) + * TRUENAME: Streams and Reading. (line 460) +@@ -9187,21 +9082,20 @@ Appendix A Function Index + * TYPECASE: Special Forms and Functions. + (line 439) + * TYPEP: Type. (line 22) +-* UNCATCH-BAD-SIGNALS: System Definitions. (line 449) + * UNEXPORT: Symbols. (line 267) + * UNINTERN: Symbols. (line 260) + * UNION: Lists. (line 438) +-* UNIVERSAL-ERROR-HANDLER: System Definitions. (line 142) ++* UNIVERSAL-ERROR-HANDLER: System Definitions. (line 130) + * UNLESS: Special Forms and Functions. + (line 639) + * UNREAD-CHAR: Streams and Reading. (line 387) + * UNTRACE: User Interface. (line 16) + * UNUSE-PACKAGE: Symbols. (line 112) +-* UNWATCH: System Definitions. (line 241) ++* UNWATCH: System Definitions. (line 229) + * UNWIND-PROTECT: Special Forms and Functions. + (line 706) + * UPPER-CASE-P: Characters. (line 157) +-* USE-FAST-LINKS: GCL Specific. (line 224) ++* USE-FAST-LINKS: GCL Specific. (line 217) + * USE-PACKAGE: Symbols. (line 59) + * USER-HOMEDIR-PATHNAME: Operating System Definitions. + (line 51) +@@ -9219,9 +9113,9 @@ Appendix A Function Index + (line 260) + * VECTORP: Sequences and Arrays and Hash Tables. + (line 666) +-* VS: System Definitions. (line 454) ++* VS: System Definitions. (line 426) + * WARN: User Interface. (line 114) +-* WATCH: System Definitions. (line 234) ++* WATCH: System Definitions. (line 222) + * WHEN: Special Forms and Functions. + (line 53) + * WITH-INPUT-FROM-STRING: Streams and Reading. (line 273) +@@ -9231,14 +9125,13 @@ Appendix A Function Index + * WRITE: Streams and Reading. (line 661) + * WRITE-BYTE: Streams and Reading. (line 139) + * WRITE-CHAR: Streams and Reading. (line 494) +-* WRITE-DEBUG-SYMBOLS: System Definitions. (line 522) +-* WRITE-FASD-TOP: System Definitions. (line 712) ++* WRITE-FASD-TOP: System Definitions. (line 647) + * WRITE-LINE: Streams and Reading. (line 654) + * WRITE-STRING: Streams and Reading. (line 210) + * WRITE-TO-STRING: Streams and Reading. (line 356) +-* XDR-OPEN: System Definitions. (line 790) +-* XDR-READ: System Definitions. (line 810) +-* XDR-WRITE: System Definitions. (line 817) ++* XDR-OPEN: System Definitions. (line 725) ++* XDR-READ: System Definitions. (line 745) ++* XDR-WRITE: System Definitions. (line 752) + * Y-OR-N-P: Streams and Reading. (line 224) + * YES-OR-NO-P: Iteration and Tests. (line 38) + * ZEROP: Numbers. (line 480) +--- gcl27-2.7.1.orig/info/gcl-tk.info ++++ gcl27-2.7.1/info/gcl-tk.info +@@ -1,4 +1,4 @@ +-This is gcl-tk.info, produced by makeinfo version 7.1 from gcl-tk.texi. ++This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi. + + This is a Texinfo GCL TK Manual + +@@ -12,7 +12,7 @@ END-INFO-DIR-ENTRY +  + Indirect: + gcl-tk.info-1: 270 +-gcl-tk.info-2: 302275 ++gcl-tk.info-2: 302276 +  + Tag Table: + (Indirect) +--- gcl27-2.7.1.orig/info/gcl-tk.info-1 ++++ gcl27-2.7.1/info/gcl-tk.info-1 +@@ -1,4 +1,4 @@ +-This is gcl-tk.info, produced by makeinfo version 7.1 from gcl-tk.texi. ++This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi. + + This is a Texinfo GCL TK Manual + +@@ -6650,3 +6650,4 @@ Keywords + -------- + + geometry manager, location, packer, parcel, propagation, size ++ +--- gcl27-2.7.1.orig/info/gcl-tk.info-2 ++++ gcl27-2.7.1/info/gcl-tk.info-2 +@@ -1,4 +1,4 @@ +-This is gcl-tk.info, produced by makeinfo version 7.1 from gcl-tk.texi. ++This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi. + + This is a Texinfo GCL TK Manual + +@@ -9,7 +9,6 @@ START-INFO-DIR-ENTRY + * gcl-tk: (gcl-tk.info). GNU Common Lisp Tk Manual + END-INFO-DIR-ENTRY + +- +  + File: gcl-tk.info, Node: place, Next: raise, Prev: pack, Up: Control + +@@ -1051,7 +1050,7 @@ wm :positionfrom window ?who? + source has been set explicitly to program. + wm :protocol window ?name? ?command? + This command is used to manage window manager protocols such as +- WM_DELETE_WINDOW. Name is the name of an atom corresponding to a ++ WM_DELETE_WINDOW. Name is the name of an atom corresponding to a + window manager protocol, such as WM_DELETE_WINDOW or + WM_SAVE_YOURSELF or WM_TAKE_FOCUS. If both name and command are + specified, then command is associated with the protocol specified diff --git a/debian/patches/Version_2_7_2pre14 b/debian/patches/Version_2_7_2pre14 new file mode 100644 index 00000000..331dfe1a --- /dev/null +++ b/debian/patches/Version_2_7_2pre14 @@ -0,0 +1,83 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Mar, 19 2026 21:14:51 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp +@@ -276,12 +276,18 @@ + (defun commasep (x) + (mapcon (lambda (x) (if (cdr x) (list (car x) ",") (list (car x)))) x)) + +-(defun ms (&rest r) +- (apply 'concatenate 'string +- (mapcar (lambda (x) +- (cond ((listp x) (apply 'ms x)) +- ((stringp x) x) +- ((write-to-string x)))) r))) ++(defun ms (&rest r) ++ (labels ((msh (x) ++ (cond ((< (length x) (1- call-arguments-limit)) ++ (apply 'concatenate 'string ++ (mapcar (lambda (x) ++ (cond ((listp x) (msh x)) ++ ((stringp x) x) ++ ((write-to-string x)))) ++ x))) ++ ((let ((y (nthcdr (- call-arguments-limit 2) x))) ++ (concatenate 'string (msh (ldiff x y)) (msh y))))))) ++ (msh r))) + + (defun nords (n &aux (i -1)) + (mapl (lambda (x) (setf (car x) (incf i))) (make-list n))) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre13" ++"Version_2_7_2pre14" +--- gcl27-2.7.1.orig/mod/gcl_defpackage.lsp ++++ gcl27-2.7.1/mod/gcl_defpackage.lsp +@@ -67,13 +67,11 @@ + ;;; ----------------------------------------------------------------- + + (unless (find-package :defpackage) +- (make-package :defpackage :use '(:cl))) ++ (make-package :defpackage :use '(:cl :sloop))) + (in-package :defpackage) + + (export '(defpackage)) + +-(use-package :SLOOP) +- + (defmacro DEFPACKAGE (name &rest options) + (declare (optimize (safety 1))) + "DEFPACKAGE - DEFINED-PACKAGE-NAME {OPTION}* [Macro] +--- gcl27-2.7.1.orig/unixport/init_raw.lsp.in ++++ gcl27-2.7.1/unixport/init_raw.lsp.in +@@ -6,7 +6,7 @@ + (make-package :compiler :use '(:cl :si :cstruct)) + (make-package :sloop :use '(:cl)) + (make-package :ansi-loop :use'(:cl)) +-(make-package :defpackage :use '(:cl)) ++(make-package :defpackage :use '(:cl :sloop)) + (make-package :tk :use '(:cl :sloop)) + (make-package :fpe :use '(:cl)) + (make-package :cltl1-compat) diff --git a/debian/patches/Version_2_7_2pre15 b/debian/patches/Version_2_7_2pre15 new file mode 100644 index 00000000..c3d7c42c --- /dev/null +++ b/debian/patches/Version_2_7_2pre15 @@ -0,0 +1,75 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Apr, 13 2026 17:26:39 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp +@@ -87,6 +87,10 @@ + (let ((val (symbol-value form))) + (or + (c1constant-value val nil) ++ (when (functionp val) ++ (multiple-value-bind (s c n) (fle val) ++ (declare (ignore c)) ++ (c1function (list (or n s))))) + `(location ,(make-info :type (object-type val)) (VV ,(add-constant form)))))) + ; ((c1var form)))) + ((c1expr-avct (c1var form))))) ;FIXME pcl +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre14" ++"Version_2_7_2pre15" +--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp ++++ gcl27-2.7.1/lsp/gcl_iolib.lsp +@@ -406,14 +406,12 @@ + (d pd (cdr pd))) + (values ps created))) + +-(defun get-byte-stream-nchars (s) +- (let* ((tp (stream-element-type s))(ctp (cmp-norm-tp tp))) +- (labels ((ts (i) (when (<= i 32) +- (if (tp<= ctp (cmp-norm-tp `(unsigned-byte ,(* i char-length)))) +- i (ts (1+ i)))))) +- (cond ((tp<= ctp #tcharacter) 1) +- ((ts 0)) +- (1))))) ++(defun get-byte-stream-nchars (s);restricted ++ (let* ((tp (stream-element-type s))) ++ (typecase tp ++ ((cons (member signed-byte unsigned-byte) (cons (integer 0) null)) ++ (values (ceiling (cadr tp) 8))) ++ (t 1)))) + + (defun parse-integer (s &key start end (radix 10) junk-allowed) + (declare (optimize (safety 1))) +--- gcl27-2.7.1.orig/o/print.d ++++ gcl27-2.7.1/o/print.d +@@ -1068,7 +1068,7 @@ print_symbol_name_body(object x,int pp) + write_ch('|'); + + for (lw=i=0;ist.st_self[i]; ++ j = (uchar)x->st.st_self[i]; + if (PRINTescape && (j == '|' || j == '\\')) + write_ch('\\'); + fc=convertible_upper(j) ? 1 : diff --git a/debian/patches/Version_2_7_2pre16 b/debian/patches/Version_2_7_2pre16 new file mode 100644 index 00000000..34febb0f --- /dev/null +++ b/debian/patches/Version_2_7_2pre16 @@ -0,0 +1,613 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Apr, 21 2026 12:11:46 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/ansi-tests/read-byte.lsp ++++ gcl27-2.7.1/ansi-tests/read-byte.lsp +@@ -79,6 +79,22 @@ + collect (list i b1 b2)) + nil) + ++(deftest read-byte.5 ++ (let ((s (open "foo.txt" ++ :direction :output ++ :if-exists :supersede ++ :element-type '(unsigned-byte 8)))) ++ (values ++ (write-byte 255 s) ++ (close s) ++ (progn ++ (setq s (open "foo.txt" ++ :direction :input ++ :element-type '(signed-byte 8))) ++ (read-byte s)) ++ (close s))) ++ 255 t -1 t) ++ + ;;; Error tests + + (deftest read-byte.error.1 +--- gcl27-2.7.1.orig/ansi-tests/read-sequence.lsp ++++ gcl27-2.7.1/ansi-tests/read-sequence.lsp +@@ -171,6 +171,12 @@ + (make-array 10 :initial-element nil :fill-pointer 5) + (:end nil) "abcdefghijk" 5 #(#\a #\b #\c #\d #\e)) + ++;; Fast read-sequence ++ ++(def-read-sequence-test read-sequence.fast-char.1 ++ (make-array 5 :element-type 'character) ++ (:end nil) "abcdefghijk" 5 "abcde") ++ + ;;; Nil vectors + + (deftest read-sequence.nil-vector.1 +@@ -231,6 +237,63 @@ + (def-read-sequence-bv-test read-sequence.bv.7 #*00000000000000 (:end 6) + 6 #*01100100000000) + ++;; Fast read-sequence -> fread cases ++ ++(defmacro def-read-sequence-fread-test (name seql tp data args &rest expected) ++ `(deftest ,name ++ ;; Create output file ++ (progn ++ (let (os) ++ (unwind-protect ++ (progn ++ (setq os (open "temp.dat" :direction :output ++ :element-type ',tp ++ :if-exists :supersede)) ++ (loop for i in (coerce ,data 'list) ++ do (if (eq ',tp 'character) (write-char i os) (write-byte i os)))) ++ (when os (close os)))) ++ (let (is (seq (make-array ,seql :element-type ',tp))) ++ (unwind-protect ++ (progn ++ (setq is (open "temp.dat" :direction :input ++ :element-type ',tp)) ++ (values ++ (read-sequence seq is ,@args) ++ seq)) ++ (when is (close is))))) ++ ,@expected)) ++ ++(def-read-sequence-fread-test ++ read-sequence.fread.1 20 ++ character "abcdefghijk" () ++ 11 "abcdefghijk ") ++ ++(def-read-sequence-fread-test ++ read-sequence.fread.2 20 ++ character "abcdefghijk" (:start 1) ++ 12 " abcdefghijk ") ++ ++(def-read-sequence-fread-test ++ read-sequence.fread.3 20 ++ character "abcdefghijk" (:start 1 :end 3) ++ 3 " ab ") ++ ++(def-read-sequence-fread-test ++ read-sequence.fread.4 20 ++ character "abcdefghijk" (:end 3) ++ 3 "abc ") ++ ++(def-read-sequence-fread-test ++ read-sequence.fread.5 20 ++ fixnum #(1 2 3 4 5 6 7 8 9 10 11) (:end 3) ++ 3 #(1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) ++ ++(def-read-sequence-fread-test ++ read-sequence.fread.6 20 ++ (unsigned-byte 16) #(1 2 3 4 5 6 7 8 9 10 11) (:start 2 :end 6) ++ 6 #(0 0 1 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) ++ ++ + ;;; Error cases + + (deftest read-sequence.error.1 +--- gcl27-2.7.1.orig/ansi-tests/write-sequence.lsp ++++ gcl27-2.7.1/ansi-tests/write-sequence.lsp +@@ -115,19 +115,19 @@ + + (defmacro def-write-sequence-bv-test (name input args expected) + `(deftest ,name +- (let ((s ,input) +- (expected ,expected)) +- (with-open-file +- (os "tmp.dat" :direction :output +- :element-type '(unsigned-byte 8) +- :if-exists :supersede) +- (assert (eq (write-sequence s os ,@args) s))) +- (with-open-file +- (is "tmp.dat" :direction :input +- :element-type '(unsigned-byte 8)) +- (loop for i from 0 below (length expected) +- for e = (elt expected i) +- always (eql (read-byte is) e)))) ++ (let ((s ,input) ++ (expected ,expected)) ++ (with-open-file ++ (os "tmp.dat" :direction :output ++ :element-type '(unsigned-byte 8) ++ :if-exists :supersede) ++ (assert (eq (write-sequence s os ,@args) s))) ++ (with-open-file ++ (is "tmp.dat" :direction :input ++ :element-type '(unsigned-byte 8)) ++ (loop for i from 0 below (length expected) ++ for e = (elt expected i) ++ always (eql (read-byte is) e)))) + t)) + + (def-write-sequence-bv-test write-sequence.bv.1 #*00111010 +@@ -143,6 +143,43 @@ + (def-write-sequence-bv-test write-sequence.bv.6 #*00111010 + (:start 1 :end nil :end 4) #*0111010) + ++(defmacro def-write-sequence-tp-test (name tp input args expected) ++ `(deftest ,name ++ (let ((s (coerce ',input `(vector ,',tp))) ++ (expected ',expected)) ++ (with-open-file ++ (os "tmp.dat" :direction :output ++ :element-type ',tp ++ :if-exists :supersede) ++ (assert (eq (write-sequence s os ,@args) s))) ++ (with-open-file ++ (is "tmp.dat" :direction :input ++ :element-type ',tp) ++ (loop for i from 0 below (length expected) ++ for e = (elt expected i) ++ always (eql (if (eq ',tp 'character) (read-char is) (read-byte is)) e)))) ++ t)) ++ ++(def-write-sequence-tp-test write-sequence.tp.1 (unsigned-byte 8) ++ (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10)) ++(def-write-sequence-tp-test write-sequence.tp.2 (unsigned-byte 16) ++ (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10)) ++(def-write-sequence-tp-test write-sequence.tp.3 (signed-byte 32) ++ (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10)) ++(def-write-sequence-tp-test write-sequence.tp.4 (signed-byte 64) ++ (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10)) ++(def-write-sequence-tp-test write-sequence.tp.5 (unsigned-byte 128) ++ (1 2 3 4 5 6 7 8 9 10) () (1 2 3 4 5 6 7 8 9 10)) ++(def-write-sequence-tp-test write-sequence.tp.6 character ++ (#\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9 #\1) () (#\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9 #\1)) ++(def-write-sequence-tp-test write-sequence.tp.7 (unsigned-byte 16) ++ (1 2 3 4 5 6 7 8 9 10) (:start 1) (2 3 4 5 6 7 8 9 10)) ++(def-write-sequence-tp-test write-sequence.tp.8 (unsigned-byte 16) ++ (1 2 3 4 5 6 7 8 9 10) (:end 4) (1 2 3)) ++(def-write-sequence-tp-test write-sequence.tp.9 (unsigned-byte 16) ++ (1 2 3 4 5 6 7 8 9 10) (:start 1 :end 4) (2 3)) ++(def-write-sequence-tp-test write-sequence.tp.10 (unsigned-byte 16) ++ (1 2 3 4 5 6 7 8 9 10) (:start 1 :end nil :end 4) (2 3 4 5 6 7 8 9 10)) + + ;;; Error tests + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp +@@ -483,18 +483,16 @@ + + (defun stub-decl (name args d &optional vp + &aux (i 0)) +- (concatenate +- 'string ++ (ms + "static " d " " name ;" LnkT" num + "(" +- (apply 'concatenate 'string +- (mapcan (lambda (x) +- (if (eq x '*) +- (list ",...") +- (list (if (plusp i) "," "") +- (rep-type x) +- (progn (incf i) (if vp (concatenate 'string "x" (write-to-string i)) ""))))) +- (if (eq (car args) '*) (cons t args) args))) ++ (mapcan (lambda (x) ++ (if (eq x '*) ++ (list ",...") ++ (list (if (plusp i) "," "") ++ (rep-type x) ++ (progn (incf i) (if vp (list "x" (write-to-string i)) ""))))) ++ (if (eq (car args) '*) (cons t args) args)) + ")")) + + +@@ -503,8 +501,7 @@ + (i (max n (- (length args) n)));FIXME + (si (write-to-string i)) + (d (declaration-type (rep-type (if (link-arg-p type) type t))))) +- (concatenate +- 'string ++ (ms + (stub-decl (concatenate 'string "LnkT" num) args d t) + "{ + int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" si) "; +@@ -512,14 +509,12 @@ + " + + (let ((j 0)) +- (apply 'concatenate 'string +- (mapcan (lambda (x &aux (sj (write-to-string (incf j)))) +- (declare (ignore x)) +- (list "FOO[" sj "-1]=(object)x" sj ";")) +- (make-list i)))) ++ (mapcan (lambda (x &aux (sj (write-to-string (incf j)))) ++ (declare (ignore x)) ++ (list "FOO[" sj "-1]=(object)x" sj ";")) ++ (make-list i))) + (when va +- (concatenate +- 'string ++ (list + " + { + va_list ap; +@@ -539,6 +534,7 @@ + "FOO); + }")) + ++ + (defun wt-function-link (x) + (let* ((name (pop x)) + (num (pop x)) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp +@@ -427,7 +427,6 @@ + + ;(si::putprop 'read-byte 'co1read-byte 'co1) + #-cygwin(si::putprop 'read-char 'co1read-char 'co1) +-(si::putprop 'write-byte 'co1write-byte 'co1) + (si::putprop 'write-char 'co1write-char 'co1) + + (defun fast-read (args read-fun) +@@ -483,15 +482,6 @@ + (declare (type ,(result-type stream) ,str)) + ,(cfast-write (list (car args) str) write-fun tp))))))) + +- +-(defun co1write-byte (f args) +- (declare (ignore f)) +- (let ((tem (cfast-write args 'write-byte 'fixnum))) +- (when tem +- (let ((*space* 10)) +- (c1expr tem))))) +- +- + (defun co1write-char (f args) + (declare (ignore f)) + (let* ((tem (cfast-write args 'write-char 'character))) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp +@@ -844,7 +844,7 @@ + (cond (f (setq inl (lit-string-merge inl (fourth f) i lna (1- lff))) + (setq lev (min lev 1));FIXME? + ; (when (> lev (seventh f)) (setq lev (seventh f))); (break) +- (incf i lff)(copy-list ff));FIXME? ++ (incf i lff)(incf lna (1- lff))(copy-list ff));FIXME? + ((incf i)(list x)))) + nargs)) + (form (list 'lit info key inl nargs nil lev oargs nil (make-vs info)))) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre15" ++"Version_2_7_2pre16" +--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp ++++ gcl27-2.7.1/lsp/gcl_iolib.lsp +@@ -347,18 +347,41 @@ + )) + + +-(defun restrict-stream-element-type (tp) +- (cond ((member tp '(unsigned-byte signed-byte)) tp) +- ((or (member tp '(character :default)) (subtypep tp 'character)) 'character) ++(defun encapsulate-stream-element-type (tp) ++ (cond ((subtypep tp 'character) 'character) + ((subtypep tp 'integer) + (let* ((ntp (tp-bnds (cmp-norm-tp tp))) + (min (car ntp))(max (cdr ntp)) + (s (if (or (eq min '*) (< min 0)) 'signed-byte 'unsigned-byte)) + (lim (unless (or (eq min '*) (eq max '*)) (max (integer-length min) (integer-length max)))) + (lim (if (and lim (eq s 'signed-byte)) (1+ lim) lim))) +- (if lim `(,s ,lim) s))) ++ (if lim `(,s ,lim) s))))) ++ ++(defconstant +array-stream-types+ (coerce (mapcar 'encapsulate-stream-element-type +array-types+) '(vector t))) ++ ++(defun restrict-stream-element-type (tp &aux etp);standardize.... ++ (cond ((member tp '(:default character)) 'character) ++ ((eq tp 'unsigned-byte) '(unsigned-byte 8)) ++ ((eq tp 'signed-byte) '(signed-byte 8)) ++ ((typep tp '(cons (member unsigned-byte signed-byte) (cons (integer 0) null))) ++ (let ((tp (list (car tp) (* char-length (ceiling (cadr tp) char-length))))) ++ (or (find tp +array-stream-types+ :test 'equal) tp))) ++ ((subtypep tp 'character) 'character) ++ ((setq etp (encapsulate-stream-element-type tp)) ++ (restrict-stream-element-type etp)) + ((check-type tp (member character integer))))) + ++(defun stream-fp (strm outp) ++ (when (open-stream-p strm) ++ (typecase strm ++ (file-synonym-stream (stream-fp (symbol-value (synonym-stream-symbol strm)) outp)) ++ (two-way-stream (stream-fp ++ (if outp (two-way-stream-output-stream strm) (two-way-stream-input-stream strm)) ++ outp)) ++ (file-io-stream (c-stream-fp strm)) ++ (file-input-stream (unless outp (c-stream-fp strm))) ++ (file-output-stream (when outp (c-stream-fp strm)))))) ++ + (defun load-pathname-exists (z) + (or (probe-file z) + (when *allow-gzipped-file* +@@ -417,54 +440,110 @@ + (declare (optimize (safety 1))) + (parse-integer-int s start end radix junk-allowed)) + +-(defun write-byte (j s &aux (i j)) ++(defun stream-element-type (s) + (declare (optimize (safety 1))) +- (check-type j integer) +- (check-type s stream) +- (dotimes (k (get-byte-stream-nchars s) j) +- (write-char (code-char (logand i #.(1- (ash 1 char-length)))) s) +- (setq i (ash i #.(- char-length))))) ++ (check-type s stream);etypecase ++ (typecase s ++ ((or broadcast-stream concatenated-stream) ++ (let ((o (c-stream-object0 s))) ++ (when o (stream-element-type (car o))))) ++ ((or two-way-stream echo-stream) ++ (stream-element-type (c-stream-object0 s))) ++ (synonym-stream ++ (stream-element-type (symbol-value (c-stream-object0 s)))) ++ (file-stream;define socket ++ (c-stream-object0 s)) ++ (t 'character))) + ++(deftype binary-stream-element-type nil 'list) ++(defconstant +char-shft+ (1- (integer-length char-length))) + +-(defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0)) ++(defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0)(tp (stream-element-type s))) + (declare (optimize (safety 1))) + (check-type s stream) +- (dotimes (k (get-byte-stream-nchars s) i) +- (setq i (logior i (ash (let ((ch (read-char s eof-error-p eof-value))) +- (if (eq ch eof-value) (return ch) (char-code ch))) +- (* k char-length)))))) ++ (check-type tp binary-stream-element-type) ++ (let* ((n (if tp (ash (cadr tp) (- +char-shft+)) 1))) ++ (dotimes (k n (let ((nb (ash n +char-shft+))) ++ (if (when (eq (car tp) 'signed-byte) (logbitp (1- nb) i)) (- i (ash 1 nb)) i))) ++ (setq i (logior i (ash (let ((ch (read-char s eof-error-p eof-value))) ++ (if (eq ch eof-value) (return ch) (char-code ch))) ++ (ash k +char-shft+))))))) ++ ++(defun write-byte (j s &aux (i j) (tp (stream-element-type s))) ++ (declare (optimize (safety 1))) ++ (check-type j integer) ++ (check-type tp binary-stream-element-type) ++ (let ((n (ash (cadr tp) (- +char-shft+)))) ++ (dotimes (k n j) ++ (write-char (code-char (logand i #.(1- (ash 1 char-length)))) s) ++ (setq i (ash i #.(- char-length)))))) ++ ++#-pre-gcl ++(defdlfun (:fixnum "fread") :fixnum :fixnum :fixnum :fixnum) ++ ++(defun read-sequence-using-fread (seq strm tp start end &aux (fp (stream-fp strm nil))) ++ #+pre-gcl ++ (declare (ignore seq tp start end fp)) ++ #-pre-gcl ++ (when fp ++ (when (eq tp (aref +array-stream-types+ (c-array-elttype seq))) ++ (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln))) ++ (when (<= start end ln) ++ (c+ start ++ (|libc|:|fread| ++ (c+ (c-array-self seq) (c* n start)) n (c- end start) fp))))))) ++ ++ + + + (defun read-sequence (seq strm &key (start 0) end + &aux (l (listp seq))(seqp (when l (nthcdr start seq))) +- (cp (eq (stream-element-type strm) 'character))) ++ (tp (stream-element-type strm))) + (declare (optimize (safety 1)));FIXME + (check-type seq sequence) + (check-type strm stream) +- (check-type start (integer 0)) +- (check-type end (or null (integer 0))) +- (labels ((set-cons (x z) (check-type x cons) (setf (car x) z) (cdr x))) +- (the seqbnd +- (reduce (lambda (y x &aux (z (if cp (read-char strm nil 'eof) (read-byte strm nil 'eof)))) +- (declare (seqind y)(ignorable x)) +- (when (eq z 'eof) (return-from read-sequence y)) +- (if l (setq seqp (set-cons seqp z)) (setf (aref seq y) z)) +- (1+ y)) +- seq :initial-value start :start start :end end)))) ++ (check-type start seqind) ++ (check-type end (or null seqind)) ++ (the seqbnd ++ (or (unless l (read-sequence-using-fread seq strm tp start end)) ++ (labels ((set-cons (x z) (check-type x cons) (setf (car x) z) (cdr x)) ++ (mread nil (if (eq tp 'character) (read-char strm nil 'eof) (read-byte strm nil 'eof)))) ++ (reduce (lambda (y x &aux (z (mread))) ++ (declare (seqind y)(ignorable x)) ++ (when (eq z 'eof) (return-from read-sequence y)) ++ (if l (setq seqp (set-cons seqp z)) (setf (aref seq y) z)) ++ (1+ y)) ++ seq :initial-value start :start start :end end))))) ++ ++#-pre-gcl ++(defdlfun (:fixnum "fwrite") :fixnum :fixnum :fixnum :fixnum) ++ ++(defun write-sequence-using-fwrite (seq strm tp start end &aux (fp (stream-fp strm t))) ++ #+pre-gcl ++ (declare (ignore seq tp start end fp)) ++ #-pre-gcl ++ (when fp ++ (when (eq tp (aref +array-stream-types+ (c-array-elttype seq))) ++ (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln))) ++ (when (<= start end ln) ++ (c+ start ++ (|libc|:|fwrite| ++ (c+ (c-array-self seq) (c* n start)) n (c- end start) fp))))))) + + + (defun write-sequence (seq strm &key (start 0) end +- &aux (cp (eq (stream-element-type strm) 'character))) ++ &aux (tp (stream-element-type strm))) + (declare (optimize (safety 1))) + (check-type seq sequence) + (check-type strm stream) + (check-type start (integer 0)) + (check-type end (or null (integer 0))) +- (reduce (lambda (y x) +- (declare (seqind y)) +- (if cp (write-char x strm) (write-byte x strm)) +- (1+ y)) +- seq :initial-value start :start start :end end) ++ (or (unless (listp seq) (write-sequence-using-fwrite seq strm tp start end)) ++ (reduce (lambda (y x) ++ (declare (seqind y)) ++ (if (eq tp 'character) (write-char x strm) (write-byte x strm)) ++ (1+ y)) ++ seq :initial-value start :start start :end end)) + seq) + + (defun open (f &key (direction :input) +@@ -481,6 +560,11 @@ + if-exists iesp if-does-not-exist idnesp external-format))) + (when (typep s 'stream) (c-set-stream-object1 s pf) s))) + ++(defun open-stream-p (strm) ++ (declare (optimize (safety 1))) ++ (check-type strm stream) ++ (not (logbitp #.(let ((s (open "/dev/null")))(close s) (1- (integer-length (c-stream-flags s)))) ++ (c-stream-flags strm)))) + + (defun file-length (x) + (declare (optimize (safety 1))) +--- gcl27-2.7.1.orig/o/error.c ++++ gcl27-2.7.1/o/error.c +@@ -400,9 +400,9 @@ void + check_arg_failed(int n) + { + if (nsm.sm_mode) { +- case smm_input: +- case smm_output: +- case smm_io: +- case smm_probe: +- return(strm->sm.sm_object0); +- +- case smm_socket: +- return (sLcharacter); +- +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; +- +- case smm_broadcast: +- x = strm->sm.sm_object0; +- if (endp(x)) +- return(Ct); +- return(stream_element_type(x->c.c_car)); +- +- case smm_concatenated: +- x = strm->sm.sm_object0; +- if (endp(x)) +- return(Ct); +- return(stream_element_type(x->c.c_car)); +- +- case smm_two_way: +- return(stream_element_type(STREAM_INPUT_STREAM(strm))); +- +- case smm_echo: +- return(stream_element_type(STREAM_INPUT_STREAM(strm))); +- +- case smm_string_input: +- return(sLcharacter); +- +- case smm_string_output: +- return(sLcharacter); +- +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- return(FALSE); +- } +-} +- + void + setup_stream_buffer(object x) { + #ifdef NO_SETBUF +@@ -1972,14 +1919,6 @@ LFD(Loutput_stream_p)() + vs_base[0] = Cnil; + } + +-LFD(Lstream_element_type)() +-{ +- check_arg(1); +- +- check_type_stream(&vs_base[0]); +- vs_base[0] = stream_element_type(vs_base[0]); +-} +- + @(defun close (strm &key abort) + @ + check_type_stream(&strm); +@@ -2856,7 +2795,6 @@ gcl_init_file_function() + make_function("STREAMP", Lstreamp); + make_function("INPUT-STREAM-P", Linput_stream_p); + make_function("OUTPUT-STREAM-P", Loutput_stream_p); +- make_function("STREAM-ELEMENT-TYPE", Lstream_element_type); + make_function("CLOSE", Lclose); + + /* make_si_function("OPEN1", Lopen1); */ diff --git a/debian/patches/Version_2_7_2pre17 b/debian/patches/Version_2_7_2pre17 new file mode 100644 index 00000000..d24b7ade --- /dev/null +++ b/debian/patches/Version_2_7_2pre17 @@ -0,0 +1,2362 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Apr, 23 2026 12:53:44 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpinline.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpinline.lsp +@@ -356,7 +356,7 @@ + + + (defun lit-loc (key inl args bind safety oargs syms stores &aux (tp (get key 'cmp-lisp-type))) +- (declare (ignore bind safety oargs stores)) ++ (declare (ignore bind safety oargs syms stores)) + (let ((sig (list (mapcar (lambda (x) (info-type (cadr x))) args) tp))) + (get-inline-loc (list (car sig) (cadr sig) (flags rfa) inl) args))) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmplam.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmplam.lsp +@@ -75,7 +75,7 @@ + + (defun c1lambda-expr (args osrc &aux (regs (pop args)) requireds tv + doc body ss is ts other-decls (ovars *vars*) +- (*vars* *vars*) narg (info (make-info)) ctps) ++ (*vars* *vars*) narg (info (make-info)) ctps *undefined-vars*) + + + (multiple-value-setq (body ss ts is other-decls doc ctps) (c1body args t));FIXME parse-body-header +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre16" ++"Version_2_7_2pre17" +--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp ++++ gcl27-2.7.1/lsp/gcl_iolib.lsp +@@ -26,6 +26,56 @@ + + (in-package :si) + ++(eval-when (:load-toplevel :compile-toplevel :execute) ++ (defun type-smm (tp) ++ (cadr (cadr (assoc tp +r+))))) ++ ++(defun make-broadcast-stream (&rest streams) ++ (declare (optimize (safety 1))) ++ (dolist (stream streams) ++ (locally (check-type stream (and stream (satisfies output-stream-p))))) ++ (let ((x (allocate-basic-stream #.(type-smm 'broadcast-stream)))) ++ (c-set-stream-object0 x streams) ++ x)) ++ ++(defun make-concatenated-stream (&rest streams) ++ (declare (optimize (safety 1))) ++ (dolist (stream streams) ++ (locally (check-type stream (and stream (satisfies input-stream-p))))) ++ (let ((x (allocate-basic-stream #.(type-smm 'concatenated-stream)))) ++ (c-set-stream-object0 x streams) ++ x)) ++ ++(defun make-synonym-stream (sym) ++ (declare (optimize (safety 1))) ++ (check-type sym symbol) ++ (labels ((fsp (s) ++ (typecase s ++ (file-stream #.(type-smm 'file-synonym-stream)) ++ (file-synonym-stream (fsp (symbol-value (c-stream-object0 s)))) ++ (t #.(type-smm 'non-file-synonym-stream))))) ++ (let ((x (allocate-basic-stream (fsp (symbol-value sym))))) ++ (c-set-stream-object0 x sym) ++ x))) ++ ++(defun make-two-way-stream (in out) ++ (declare (optimize (safety 1))) ++ (check-type in (and stream (satisfies input-stream-p))) ++ (check-type out (and stream (satisfies output-stream-p))) ++ (let ((x (allocate-basic-stream #.(type-smm 'two-way-stream)))) ++ (c-set-stream-object0 x in) ++ (c-set-stream-object1 x out) ++ x)) ++ ++(defun make-echo-stream (in out) ++ (declare (optimize (safety 1))) ++ (check-type in (and stream (satisfies input-stream-p))) ++ (check-type out (and stream (satisfies output-stream-p))) ++ (let ((x (allocate-basic-stream #.(type-smm 'echo-stream)))) ++ (c-set-stream-object0 x in) ++ (c-set-stream-object1 x out) ++ x)) ++ + (defun concatenated-stream-streams (stream) + (declare (optimize (safety 2))) + (check-type stream concatenated-stream) +@@ -75,10 +125,28 @@ + (check-type string string) + (check-type start seqind) + (check-type end (or null seqind)) +- (let ((l (- (or end (length string)) start))) +- (make-string-input-stream-int +- (make-array l :element-type (array-element-type string) :displaced-to string :displaced-index-offset start :fill-pointer 0) +- 0 l))) ++ (let* ((l (- (or end (length string)) start)) ++ (x (allocate-basic-stream #.(type-smm 'string-input-stream)))) ++ (c-set-stream-object0 x ++ (make-array l ++ :element-type (array-element-type string) ++ :displaced-to string :displaced-index-offset start ++ :fill-pointer 0)) ++ x)) ++ ++(defun make-string-output-stream (&key (element-type 'character)) ++ (declare (optimize (safety 1))(ignore element-type)) ++ (let ((x (allocate-basic-stream #.(type-smm 'string-output-stream)))) ++ (c-set-stream-object0 x (make-vector 'character 64 t 0 nil 0 nil nil)) ++ x)) ++ ++(defun get-output-stream-string (strm) ++ (declare (optimize (safety 1))) ++ (check-type strm string-output-stream) ++ (let ((x (copy-seq (c-stream-object0 strm)))) ++ (c-set-stream-int strm 0) ++ (setf (fill-pointer (c-stream-object0 strm)) 0) ++ x)) + + (defun get-string-input-stream-index (stream &aux (s (c-stream-object0 stream))) + (+ (fill-pointer s) (multiple-value-bind (a b) (array-displacement s) (declare (ignore a)) b))) +@@ -104,6 +172,11 @@ + (setf (fill-pointer (c-stream-object0 *sosm*)) 0) + *sosm*)) + ++(defun make-string-output-stream-from-string (string) ++ (let ((x (allocate-basic-stream #.(type-smm 'string-output-stream)))) ++ (c-set-stream-object0 x string) ++ x)) ++ + (defmacro with-output-to-string ((var &optional string &key (element-type ''character)) . body) + (declare (optimize (safety 2))) + (multiple-value-bind (doc decls ctps body) (parse-body-header body) +@@ -472,6 +545,7 @@ + (defun write-byte (j s &aux (i j) (tp (stream-element-type s))) + (declare (optimize (safety 1))) + (check-type j integer) ++ (check-type s stream) + (check-type tp binary-stream-element-type) + (let ((n (ash (cadr tp) (- +char-shft+)))) + (dotimes (k n j) +@@ -560,6 +634,17 @@ + if-exists iesp if-does-not-exist idnesp external-format))) + (when (typep s 'stream) (c-set-stream-object1 s pf) s))) + ++(defun close (stream &key abort) ++ (declare (optimize (safety 1))(ignore abort)) ++ (check-type stream stream) ++ (close-stream stream)) ++ ++(defun socket (port &key host server async myaddr myport daemon) ++ (socket-int port host server async myaddr myport daemon)) ++ ++(defun string-to-object (string) ++ (string-to-object-int (make-string-input-stream string))) ++ + (defun open-stream-p (strm) + (declare (optimize (safety 1))) + (check-type strm stream) +--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp ++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp +@@ -43,7 +43,7 @@ + (string-concatenate "(" (substitute #\^ #\! (subseq x 0 2)) (subseq x 2) ")"))) + (cons #v"\\*" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "]*)") "(.*)"))) + (cons #v"\\?" (lambda (x y) (declare (ignore x)) (if (plusp (length y)) (string-concatenate "([^" y "])") "(.)"))) +- (cons #v"[+|.^$()]" (lambda (x y) (declare (ignore x y))(string-concatenate "\\" x))))) ++ (cons #v"[+|.^$()]" (lambda (x y) (declare (ignore y))(string-concatenate "\\" x))))) + + (defconstant +physical-pathname-defaults+ '(("" "" "" "") + ("" "" "" "") +--- gcl27-2.7.1.orig/lsp/gcl_sym.lsp ++++ gcl27-2.7.1/lsp/gcl_sym.lsp +@@ -48,8 +48,8 @@ + (defun symbol-value (s) + (declare (optimize (safety 1))) + (check-type s symbol) +- (if (boundp s) (c-symbol-dbind s) +- (error 'unbound-variable :name s))) ++ (assert (boundp s) nil 'unbound-variable :name s) ++ (c-symbol-dbind s)) + + (defun boundp (s) + (declare (optimize (safety 1))) +--- gcl27-2.7.1.orig/lsp/gcl_typeof.lsp ++++ gcl27-2.7.1/lsp/gcl_typeof.lsp +@@ -16,10 +16,6 @@ + (i (real-rep (if s x (cadr x))))) + (complex r i))) + +-(defun make-string-output-stream (&key (element-type 'character)) +- (declare (optimize (safety 1))(ignore element-type)) +- (make-string-output-stream-int)) +- + (defconstant +r+ `(,@(when (plusp most-positive-immfix) `((immfix 1))) + (bfix most-positive-fixnum) + (bignum (1+ most-positive-fixnum)) +@@ -40,18 +36,18 @@ + (hash-table-equal (make-hash-table :test 'equal)) + (hash-table-equalp (make-hash-table :test 'equalp)) + (package *package*) +- (file-input-stream (let ((s (open-int "/dev/null" :input 'character nil nil nil nil :default))) (close s) s)) +- (file-output-stream (let ((s (open-int "/dev/null" :output 'character nil nil nil nil :default))) (close s) s)) +- (file-io-stream (let ((s (open-int "/dev/null" :io 'character nil nil nil nil :default))) (close s) s)) +- (file-probe-stream (let ((s (open-int "/dev/null" :probe 'character nil nil nil nil :default))) (close s) s)) +- (file-synonym-stream (let* ((*standard-output* (open-int "/dev/null" :output 'character nil nil nil nil :default))) (close *standard-output*) (make-synonym-stream '*standard-output*))) +- (non-file-synonym-stream *debug-io*);FIXME +- (broadcast-stream (make-broadcast-stream)) +- (concatenated-stream (make-concatenated-stream)) +- (two-way-stream *terminal-io*) +- (echo-stream (make-echo-stream *standard-output* *standard-output*)) +- (string-input-stream (make-string-input-stream-int (make-vector 'character 0 t 0 nil 0 nil nil) 0 0)) +- (string-output-stream (make-string-output-stream));FIXME user defined, socket ++ (file-input-stream (allocate-basic-stream 0)) ++ (file-output-stream (allocate-basic-stream 1)) ++ (file-io-stream (allocate-basic-stream 2)) ++ (file-probe-stream (allocate-basic-stream 3)) ++ (file-synonym-stream (allocate-basic-stream 4)) ++ (non-file-synonym-stream (allocate-basic-stream 5));FIXME ++ (broadcast-stream (allocate-basic-stream 6));(make-broadcast-stream) ++ (concatenated-stream (allocate-basic-stream 7)) ++ (two-way-stream (allocate-basic-stream 8)) ++ (echo-stream (allocate-basic-stream 9)) ++ (string-input-stream (allocate-basic-stream 10)) ++ (string-output-stream (allocate-basic-stream 11));FIXME user defined, socket + (random-state (make-random-state)) + (readtable (standard-readtable)) + (non-standard-object-compiled-function (function eq)) +--- gcl27-2.7.1.orig/o/file.d ++++ gcl27-2.7.1/o/file.d +@@ -188,119 +188,6 @@ DEFUN("TERMINAL-INPUT-STREAM-P",object,f + RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_input && x->sm.sm_fp && isatty(fileno(x->sm.sm_fp)) ? Ct : Cnil); + } + +- +-/* +- Input_stream_p(strm) answers +- if stream strm is an input stream or not. +- It does not check if it really is possible to read +- from the stream, +- but only checks the mode of the stream (sm_mode). +-*/ +-static bool +-input_stream_p(object strm) { +- +-BEGIN: +- switch (strm->sm.sm_mode) { +- case smm_input: +- return(TRUE); +- +- case smm_output: +- return(FALSE); +- +- case smm_io: +- case smm_socket: +- return(TRUE); +- +- case smm_probe: +- return(FALSE); +- +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; +- +- case smm_broadcast: +- return(FALSE); +- +- case smm_concatenated: +- return(TRUE); +- +- case smm_two_way: +- return(TRUE); +- +- case smm_echo: +- return(TRUE); +- +- case smm_string_input: +- return(TRUE); +- +- case smm_string_output: +- return(FALSE); +- +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- return(FALSE); +- } +-} +- +-/* +- Output_stream_p(strm) answers +- if stream strm is an output stream. +- It does not check if it really is possible to write +- to the stream, +- but only checks the mode of the stream (sm_mode). +-*/ +-static bool +-output_stream_p(object strm) { +- +-BEGIN: +- switch (strm->sm.sm_mode) { +- case smm_input: +- return(FALSE); +- +- case smm_output: +- return(TRUE); +- +- case smm_io: +- case smm_socket: +- return(TRUE); +- +- case smm_probe: +- return(FALSE); +- +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; +- +- case smm_broadcast: +- return(TRUE); +- +- case smm_concatenated: +- return(FALSE); +- +- case smm_two_way: +- return(TRUE); +- +- case smm_echo: +- return(TRUE); +- +- case smm_string_input: +- return(FALSE); +- +- case smm_string_output: +- return(TRUE); +- +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- return(FALSE); +- } +-} +- + void + setup_stream_buffer(object x) { + #ifdef NO_SETBUF +@@ -328,6 +215,28 @@ static void + cannot_open(object); + static void + cannot_create(object); ++ ++DEFUN("ALLOCATE-BASIC-STREAM",object,fSallocate_basic_stream,SI,1,1,NONE,OI,OO,OO,OO,(fixnum mode),"") { ++ ++ object x; ++ ++ BEGIN_NO_INTERRUPT; ++ ++ x = alloc_object(t_stream); ++ x->sm.tt=x->sm.sm_mode = mode; ++ x->sm.sm_fp = NULL; ++ x->sm.sm_buffer = 0; ++ x->sm.sm_object0 = OBJNULL; ++ x->sm.sm_object1 = OBJNULL; ++ x->sm.sm_int = 0; ++ x->sm.sm_flags=0; ++ ++ END_NO_INTERRUPT; ++ ++ RETURN1(x); ++ ++} ++ + /* + Open_stream(fn, smm, if_exists, if_does_not_exist) + opens file fn with mode smm. +@@ -338,7 +247,6 @@ open_stream(object fn,enum smmode smm, o + + object x; + FILE *fp=NULL; +- vs_mark; + + coerce_to_filename(fn,FN1); + +@@ -423,19 +331,12 @@ open_stream(object fn,enum smmode smm, o + break; + } + +- vs_push(make_simple_string(FN1)); +- x = alloc_object(t_stream); +- x->sm.tt=x->sm.sm_mode = (short)smm; ++ x=FFN(fSallocate_basic_stream)(smm); + x->sm.sm_fp = fp; +- x->sm.sm_buffer = 0; + x->sm.sm_object0 = sLcharacter; +- x->sm.sm_object1 = vs_head; +- x->sm.sm_int = 0; +- x->sm.sm_flags=0; +- vs_push(x); ++ x->sm.sm_object1 = make_simple_string(FN1); + + setup_stream_buffer(x); +- vs_reset; + + if (smm==smm_probe) + close_stream(x); +@@ -447,18 +348,6 @@ open_stream(object fn,enum smmode smm, o + static void + gclFlushSocket(object); + +-DEFUN("OPEN-STREAM-P",object,fLopen_stream_p,LISP,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- +- check_type_stream(&x); +- +- return GET_STREAM_FLAG(x,gcl_sm_closed) ? Cnil : Ct; +- +-} +- /* +- Close_stream(strm) closes stream strm. +- The abort_flag is not used now. +-*/ +- + static int + pipe_designator_p(object x) { + +@@ -472,8 +361,8 @@ pipe_designator_p(object x) { + void + close_stream(object strm) { + +- if (FFN(fLopen_stream_p)(strm)==Cnil) +- return; ++ if (GET_STREAM_FLAG(strm,gcl_sm_closed)) ++ return; + + switch (strm->sm.sm_mode) { + case smm_output: +@@ -530,8 +419,6 @@ close_stream(object strm) { + case smm_echo: + STREAM_INPUT_STREAM(strm)=OBJNULL; + STREAM_OUTPUT_STREAM(strm)=OBJNULL; +- /* close_stream(STREAM_INPUT_STREAM(strm)); */ +- /* close_stream(STREAM_OUTPUT_STREAM(strm)); */ + break; + + case smm_string_input: +@@ -547,6 +434,12 @@ close_stream(object strm) { + + } + ++DEFUN("CLOSE-STREAM",object,fSclose_stream,SI,1,1,NONE,OO,OO,OO,OO,(object strm),"") { ++ close_stream(strm); ++ RETURN1(Ct); ++} ++ ++ + DEFUN("INTERACTIVE-STREAM-P",object,fLinteractive_stream_p,LISP,1,1,NONE,OO,OO,OO,OO,(object strm),"") { + + check_type_stream(&strm); +@@ -600,54 +493,14 @@ fLinteractive_stream_p(object x) { + object + make_two_way_stream(object istrm,object ostrm) { + +- object strm; +- +- strm = alloc_object(t_stream); +- strm->sm.tt=strm->sm.sm_mode = (short)smm_two_way; +- strm->sm.sm_fp = NULL; +- strm->sm.sm_buffer = 0; +- STREAM_INPUT_STREAM(strm) = istrm; +- STREAM_OUTPUT_STREAM(strm) = ostrm; +- strm->sm.sm_int = 0; +- strm->sm.sm_flags=0; +- return(strm); +-} +- +-static object +-make_echo_stream(object istrm,object ostrm) { +- +- object strm; +- +- strm = make_two_way_stream(istrm, ostrm); +- strm->d.tt=strm->sm.sm_mode = (short)smm_echo; +- return(strm); +-} +- +-DEFUN("MAKE-STRING-INPUT-STREAM-INT",object,fSmake_string_input_stream_int,SI,3,3,NONE,OO,II,OO,OO, +- (object strng,fixnum istart,fixnum iend),"") { +- + object strm; + +- massert(type_of(strng)==t_string); +- strm = alloc_object(t_stream); +- strm->sm.tt=strm->sm.sm_mode = (short)smm_string_input; +- strm->sm.sm_fp = NULL; +- strm->sm.sm_buffer = 0; +- strm->sm.sm_flags=0; +- STRING_STREAM_STRING(strm) = strng; +- strm->sm.sm_object1 = OBJNULL; +- STRING_INPUT_STREAM_NEXT(strm)= istart; +- STRING_INPUT_STREAM_END(strm)= iend; +- +- RETURN1(strm); ++ strm=FFN(fSallocate_basic_stream)(smm_two_way); ++ strm->sm.sm_object0=istrm; ++ strm->sm.sm_object1=ostrm; ++ return(strm); + + } +-#ifdef STATIC_FUNCTION_POINTERS +-object +-fSmake_string_input_stream_int(object x,fixnum y,fixnum z) { +- return FFN(fSmake_string_input_stream_int)(x,y,z); +-} +-#endif + + static bool + tty_stream_p(object strm) { +@@ -696,43 +549,19 @@ tty_stream_p(object strm) { + DEFUN("TTY-STREAM-P",object,fStty_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { + return tty_stream_p(x) ? Ct : Cnil; + } +-DEFUN("STRING-INPUT-STREAM-P",object,fSstring_input_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- return type_of(x)==t_stream && x->sm.sm_mode == (short)smm_string_input ? Ct : Cnil; +-} +-DEFUN("STRING-OUTPUT-STREAM-P",object,fSstring_output_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- return type_of(x)==t_stream && x->sm.sm_mode == (short)smm_string_output ? Ct : Cnil; +-} + + object + make_string_output_stream(int line_length) { + +- object strng, strm; +- vs_mark; +- +- strng = alloc_string(line_length); +- strng->st.st_fillp = 0; +- strng->st.st_self = alloc_relblock(line_length); +- strm = alloc_object(t_stream); +- strm->sm.tt=strm->sm.sm_mode = (short)smm_string_output; +- strm->sm.sm_fp = NULL; +- strm->sm.sm_buffer = 0; +- STRING_STREAM_STRING(strm) = strng; +- strm->sm.sm_object1 = OBJNULL; +- strm->sm.sm_int = 0; +- strm->sm.sm_flags=0; +- vs_reset; +- return(strm); +-} +- +-static object +-get_output_stream_string(object strm) { ++ object strng, strm; + +- object strng; ++ strng = alloc_string(line_length); ++ strng->st.st_fillp = 0; ++ strng->st.st_self = alloc_relblock(line_length); ++ strm=FFN(fSallocate_basic_stream)(smm_string_output); ++ strm->sm.sm_object0=strng; ++ return(strm); + +- strng = copy_simple_string(STRING_STREAM_STRING(strm)); +- STREAM_FILE_COLUMN(strm) = 0; +- STRING_STREAM_STRING(strm)->st.st_fillp = 0; +- return(strng); + } + + static void +@@ -740,84 +569,75 @@ cannot_read(object); + + static void + closed_stream(object); +- int ++ ++int + readc_stream(object strm) { + +- int c; ++ int c; + +-BEGIN: +- switch (strm->sm.sm_mode) { ++ BEGIN: ++ switch (strm->sm.sm_mode) { + #ifdef HAVE_NSOCKET +- case smm_socket: +- return (getCharGclSocket(strm,Ct)); ++ case smm_socket: ++ return (getCharGclSocket(strm,Ct)); + #endif +- case smm_input: +- case smm_io: ++ case smm_input: ++ case smm_io: + +- if (strm->sm.sm_fp == NULL) +- closed_stream(strm); +- c = kclgetc(strm->sm.sm_fp); +-/* if (c == EOF) { */ +-/* if (xkclfeof(c,strm->sm.sm_fp)) */ +-/* end_of_stream(strm); */ +-/* else c = kclgetc(strm->sm.sm_fp); */ +-/* if (c == EOF) end_of_stream(strm); */ +-/* } */ +- +-/* c &= 0377; */ +- /* strm->sm.sm_int0++; */ +- return(c==EOF ? c : (c&0377)); ++ if (strm->sm.sm_fp == NULL) ++ closed_stream(strm); ++ c = kclgetc(strm->sm.sm_fp); ++ return(c==EOF ? c : (c&0377)); + +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; ++ case smm_file_synonym: ++ case smm_synonym: ++ strm = symbol_value(strm->sm.sm_object0); ++ if (type_of(strm) != t_stream) ++ FEwrong_type_argument(sLstream, strm); ++ goto BEGIN; + +- case smm_concatenated: ++ case smm_concatenated: + CONCATENATED: +- if (endp(strm->sm.sm_object0)) { +- end_of_stream(strm); +- } +- if (stream_at_end(strm->sm.sm_object0->c.c_car)) { +- strm->sm.sm_object0 +- = strm->sm.sm_object0->c.c_cdr; +- goto CONCATENATED; +- } +- c = readc_stream(strm->sm.sm_object0->c.c_car); +- return(c); ++ if (endp(strm->sm.sm_object0)) { ++ end_of_stream(strm); ++ } ++ if (stream_at_end(strm->sm.sm_object0->c.c_car)) { ++ strm->sm.sm_object0 ++ = strm->sm.sm_object0->c.c_cdr; ++ goto CONCATENATED; ++ } ++ c = readc_stream(strm->sm.sm_object0->c.c_car); ++ return(c); + +- case smm_two_way: ++ case smm_two_way: + #ifdef UNIX +- if (strm == terminal_io) +- flush_stream(STREAM_OUTPUT_STREAM(terminal_io)); ++ if (strm == terminal_io) ++ flush_stream(STREAM_OUTPUT_STREAM(terminal_io)); + #endif +- /* strm->sm.sm_int1 = 0; */ +- strm = STREAM_INPUT_STREAM(strm); +- goto BEGIN; ++ strm = STREAM_INPUT_STREAM(strm); ++ goto BEGIN; + +- case smm_echo: +- c = readc_stream(STREAM_INPUT_STREAM(strm)); +- if (ECHO_STREAM_N_UNREAD(strm) == 0) +- writec_stream(c, STREAM_OUTPUT_STREAM(strm)); +- else +- --(ECHO_STREAM_N_UNREAD(strm)); +- return(c); ++ case smm_echo: ++ c = readc_stream(STREAM_INPUT_STREAM(strm)); ++ if (ECHO_STREAM_N_UNREAD(strm) == 0) ++ writec_stream(c, STREAM_OUTPUT_STREAM(strm)); ++ else ++ --(ECHO_STREAM_N_UNREAD(strm)); ++ return(c); + +- case smm_string_input: +- if (STRING_INPUT_STREAM_NEXT(strm)>= STRING_INPUT_STREAM_END(strm)) +- end_of_stream(strm); +- return(STRING_STREAM_STRING(strm)->st.st_self +- [STRING_INPUT_STREAM_NEXT(strm)++]); ++ case smm_string_input: ++ if (STRING_INPUT_STREAM_NEXT(strm)>= STRING_INPUT_STREAM_END(strm)) ++ end_of_stream(strm); ++ return(STRING_STREAM_STRING(strm)->st.st_self ++ [STRING_INPUT_STREAM_NEXT(strm)++]); + +- case smm_output: +- case smm_probe: +- case smm_broadcast: +- case smm_string_output: +- cannot_read(strm); ++ case smm_output: ++ case smm_probe: ++ case smm_broadcast: ++ case smm_string_output: ++ cannot_read(strm); + #ifdef USER_DEFINED_STREAMS +- case smm_user_defined: ++ case smm_user_defined: + #define STM_DATA_STRUCT 0 + #define STM_READ_CHAR 1 + #define STM_WRITE_CHAR 2 +@@ -827,27 +647,28 @@ BEGIN: + #define STM_CLOSE 5 + #define STM_TYPE 6 + #define STM_NAME 8 +-{object val; +- object *old_vs_base = vs_base; +- object *old_vs_top = vs_top; +- vs_base = vs_top; +- vs_push(strm); +- super_funcall(strm->sm.sm_object1->str.str_self[STM_READ_CHAR]); +- val = vs_base[0]; +- vs_base = old_vs_base; +- vs_top = old_vs_top; +- if (type_of(val) == t_fixnum) +- return (fix(val)); +- if (type_of(val) == t_character) +- return (char_code(val)); +- } ++ { ++ object val; ++ object *old_vs_base = vs_base; ++ object *old_vs_top = vs_top; ++ vs_base = vs_top; ++ vs_push(strm); ++ super_funcall(strm->sm.sm_object1->str.str_self[STM_READ_CHAR]); ++ val = vs_base[0]; ++ vs_base = old_vs_base; ++ vs_top = old_vs_top; ++ if (type_of(val) == t_fixnum) ++ return (fix(val)); ++ if (type_of(val) == t_character) ++ return (char_code(val)); ++ } + + #endif + +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- return(0); +- } ++ default: ++ FEerror("Illegal stream mode for ~S.",1,strm); ++ return(0); ++ } + } + + int +@@ -855,81 +676,82 @@ rl_ungetc_em(int, FILE *); + + void + unreadc_stream(int c, object strm) { +-BEGIN: +- switch (strm->sm.sm_mode) { +- case smm_socket: ++ ++ BEGIN: ++ switch (strm->sm.sm_mode) { ++ case smm_socket: + #ifdef HAVE_NSOCKET +- ungetCharGclSocket(c,strm); +- return; ++ ungetCharGclSocket(c,strm); ++ return; + #endif +- case smm_input: +- case smm_io: ++ case smm_input: ++ case smm_io: + +- if (strm->sm.sm_fp == NULL) +- closed_stream(strm); +- kclungetc(c, strm->sm.sm_fp); +- /* --strm->sm.sm_int0; */ /* use ftell now for position */ +- break; ++ if (strm->sm.sm_fp == NULL) ++ closed_stream(strm); ++ kclungetc(c, strm->sm.sm_fp); ++ break; + +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; ++ case smm_file_synonym: ++ case smm_synonym: ++ strm = symbol_value(strm->sm.sm_object0); ++ if (type_of(strm) != t_stream) ++ FEwrong_type_argument(sLstream, strm); ++ goto BEGIN; + +- case smm_concatenated: +- if (endp(strm->sm.sm_object0)) +- goto UNREAD_ERROR; +- strm = strm->sm.sm_object0->c.c_car; +- goto BEGIN; ++ case smm_concatenated: ++ if (endp(strm->sm.sm_object0)) ++ goto UNREAD_ERROR; ++ strm = strm->sm.sm_object0->c.c_car; ++ goto BEGIN; + +- case smm_two_way: +- strm = STREAM_INPUT_STREAM(strm); +- goto BEGIN; ++ case smm_two_way: ++ strm = STREAM_INPUT_STREAM(strm); ++ goto BEGIN; + +- case smm_echo: +- unreadc_stream(c, STREAM_INPUT_STREAM(strm)); +- ECHO_STREAM_N_UNREAD(strm)++; +- break; ++ case smm_echo: ++ unreadc_stream(c, STREAM_INPUT_STREAM(strm)); ++ ECHO_STREAM_N_UNREAD(strm)++; ++ break; + +- case smm_string_input: +- if (STRING_INPUT_STREAM_NEXT(strm)<= 0) +- goto UNREAD_ERROR; +- --STRING_INPUT_STREAM_NEXT(strm); +- break; ++ case smm_string_input: ++ if (STRING_INPUT_STREAM_NEXT(strm)<= 0) ++ goto UNREAD_ERROR; ++ --STRING_INPUT_STREAM_NEXT(strm); ++ break; + +- case smm_output: +- case smm_probe: +- case smm_broadcast: +- case smm_string_output: +- goto UNREAD_ERROR; ++ case smm_output: ++ case smm_probe: ++ case smm_broadcast: ++ case smm_string_output: ++ goto UNREAD_ERROR; + + #ifdef USER_DEFINED_STREAMS +- case smm_user_defined: +- {object *old_vs_base = vs_base; +- object *old_vs_top = vs_top; +- vs_base = vs_top; +- vs_push(strm); +- /* if there is a file pointer and no define unget function, +- * then call ungetc */ +- if ((strm->sm.sm_fp != NULL ) && +- strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR] == Cnil) +- kclungetc(c, strm->sm.sm_fp); +- else +- super_funcall(strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR]); +- vs_top = old_vs_top; +- vs_base = old_vs_base; +- } +- break; ++ case smm_user_defined: ++ { ++ object *old_vs_base = vs_base; ++ object *old_vs_top = vs_top; ++ vs_base = vs_top; ++ vs_push(strm); ++ /* if there is a file pointer and no define unget function, ++ * then call ungetc */ ++ if ((strm->sm.sm_fp != NULL ) && ++ strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR] == Cnil) ++ kclungetc(c, strm->sm.sm_fp); ++ else ++ super_funcall(strm->sm.sm_object1->str.str_self[STM_UNREAD_CHAR]); ++ vs_top = old_vs_top; ++ vs_base = old_vs_base; ++ } ++ break; + #endif +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- } +- return; ++ default: ++ FEerror("Illegal stream mode for ~S.",1,strm); ++ } ++ return; + +-UNREAD_ERROR: +- FEerror("Cannot unread the stream ~S.", 1, strm); ++ UNREAD_ERROR: ++ FEerror("Cannot unread the stream ~S.", 1, strm); + } + + static void +@@ -939,36 +761,6 @@ rl_putc_em(int, FILE *); + static void + cannot_write(object); + +-object +-output_stream(object strm) { +- +- switch (strm->sm.sm_mode) { +- case smm_output: +- case smm_io: +- case smm_socket: +- case smm_string_output: +- case smm_broadcast: +-#ifdef USER_DEFINED_STREAMS +- case smm_user_defined: +-#endif +- return strm; +- +- case smm_file_synonym: +- case smm_synonym: +- return output_stream(symbol_value(strm->sm.sm_object0)); +- +- case smm_two_way: +- case smm_echo: +- return output_stream(STREAM_OUTPUT_STREAM(strm)); +- +- default: +- cannot_write(strm); +- return Cnil; +- +- } +- +-} +- + static void + adjust_stream_column(int c,object strm) { + +@@ -1064,182 +856,171 @@ writec_stream_fun(object strm) { + + int + writec_stream(int c, object strm) { +- object x; +- char *p; ++ ++ object x; ++ char *p; + + BEGIN: +- switch (strm->sm.sm_mode) { +- case smm_output: +- case smm_io: +- case smm_socket: +- /* strm->sm.sm_int0++; */ +- if (c == '\n') +- STREAM_FILE_COLUMN(strm) = 0; +- else if (c == '\t') +- STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8; +- else +- STREAM_FILE_COLUMN(strm)++; +- if (strm->sm.sm_fp == NULL) +- { ++ switch (strm->sm.sm_mode) { ++ case smm_output: ++ case smm_io: ++ case smm_socket: ++ if (c == '\n') ++ STREAM_FILE_COLUMN(strm) = 0; ++ else if (c == '\t') ++ STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8; ++ else ++ STREAM_FILE_COLUMN(strm)++; ++ if (strm->sm.sm_fp == NULL) { + #ifdef HAVE_NSOCKET +- if (strm->sm.sm_mode == smm_socket && strm->sm.sm_fd>=0) +- putCharGclSocket(strm,c); +- else ++ if (strm->sm.sm_mode == smm_socket && strm->sm.sm_fd>=0) ++ putCharGclSocket(strm,c); ++ else + #endif +- if (!GET_STREAM_FLAG(strm,gcl_sm_had_error)) +- closed_stream(strm); +- } else { +- +- kclputc(c, strm->sm.sm_fp); +- } ++ if (!GET_STREAM_FLAG(strm,gcl_sm_had_error)) ++ closed_stream(strm); ++ } else ++ kclputc(c, strm->sm.sm_fp); + +- break; ++ break; + +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; ++ case smm_file_synonym: ++ case smm_synonym: ++ strm = symbol_value(strm->sm.sm_object0); ++ if (type_of(strm) != t_stream) ++ FEwrong_type_argument(sLstream, strm); ++ goto BEGIN; + +- case smm_broadcast: +- for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr) +- writec_stream(c, x->c.c_car); +- break; ++ case smm_broadcast: ++ for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr) ++ writec_stream(c, x->c.c_car); ++ break; + +- case smm_two_way: +- /* this should be on the actual streams +- strm->sm.sm_int0++; +- if (c == '\n') +- strm->sm.sm_int1 = 0; +- else if (c == '\t') +- strm->sm.sm_int1 = (strm->sm.sm_int1&~07) + 8; +- else +- strm->sm.sm_int1++; +- */ +- strm = STREAM_OUTPUT_STREAM(strm); +- goto BEGIN; ++ case smm_two_way: ++ strm = STREAM_OUTPUT_STREAM(strm); ++ goto BEGIN; + +- case smm_echo: +- strm = STREAM_OUTPUT_STREAM(strm); +- goto BEGIN; ++ case smm_echo: ++ strm = STREAM_OUTPUT_STREAM(strm); ++ goto BEGIN; + +- case smm_string_output: +- /* strm->sm.sm_int0++; */ +- if (c == '\n') +- STREAM_FILE_COLUMN(strm) = 0; +- else if (c == '\t') +- STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8; +- else +- STREAM_FILE_COLUMN(strm)++; +- x = STRING_STREAM_STRING(strm); +- if (x->st.st_fillp >= x->st.st_dim) { ++ case smm_string_output: ++ if (c == '\n') ++ STREAM_FILE_COLUMN(strm) = 0; ++ else if (c == '\t') ++ STREAM_FILE_COLUMN(strm) = (STREAM_FILE_COLUMN(strm)&~07) + 8; ++ else ++ STREAM_FILE_COLUMN(strm)++; ++ x = STRING_STREAM_STRING(strm); ++ if (x->st.st_fillp >= x->st.st_dim) { + +- ufixnum j=x->st.st_dim * 2 + 16; ++ ufixnum j=x->st.st_dim * 2 + 16; + +- if (!x->st.st_adjustable) +- FEerror("The string ~S is not adjustable.",1, x); ++ if (!x->st.st_adjustable) ++ FEerror("The string ~S is not adjustable.",1, x); + +- p = (inheap((long)x->st.st_self) ? alloc_contblock : alloc_relblock)(j); +- memcpy(p,x->st.st_self,x->st.st_dim); +- x->st.st_dim=j; +- x->st.st_self=p; ++ p = (inheap((long)x->st.st_self) ? alloc_contblock : alloc_relblock)(j); ++ memcpy(p,x->st.st_self,x->st.st_dim); ++ x->st.st_dim=j; ++ x->st.st_self=p; + +- adjust_displaced(x); ++ adjust_displaced(x); + +- } +- x->st.st_self[x->st.st_fillp++] = c; +- break; ++ } ++ x->st.st_self[x->st.st_fillp++] = c; ++ break; + +- case smm_input: +- case smm_probe: +- case smm_concatenated: +- case smm_string_input: +- cannot_write(strm); ++ case smm_input: ++ case smm_probe: ++ case smm_concatenated: ++ case smm_string_input: ++ cannot_write(strm); + + #ifdef USER_DEFINED_STREAMS +- case smm_user_defined: +- {object *old_vs_base = vs_base; +- object *old_vs_top = vs_top; +- vs_base = vs_top; +- vs_push(strm); +- vs_push(code_char(c)); +- super_funcall(strm->sm.sm_object1->str.str_self[2]); +- vs_base = old_vs_base; +- vs_top = old_vs_top; +- break; +- } ++ case smm_user_defined: ++ { ++ object *old_vs_base = vs_base; ++ object *old_vs_top = vs_top; ++ vs_base = vs_top; ++ vs_push(strm); ++ vs_push(code_char(c)); ++ super_funcall(strm->sm.sm_object1->str.str_self[2]); ++ vs_base = old_vs_base; ++ vs_top = old_vs_top; ++ break; ++ } + + #endif +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- } +- return(c); ++ default: ++ FEerror("Illegal stream mode for ~S.",1,strm); ++ } ++ return(c); + } + + void + flush_stream(object strm) { +- object x; + +-BEGIN: +- switch (strm->sm.sm_mode) { +- case smm_output: +- case smm_io: +- if (strm->sm.sm_fp == NULL) +- closed_stream(strm); +- fflush(strm->sm.sm_fp); +- break; +- case smm_socket: ++ object x; ++ ++ BEGIN: ++ switch (strm->sm.sm_mode) { ++ case smm_output: ++ case smm_io: ++ if (strm->sm.sm_fp == NULL) ++ closed_stream(strm); ++ fflush(strm->sm.sm_fp); ++ break; ++ case smm_socket: + #ifdef HAVE_NSOCKET +- if (SOCKET_STREAM_FD(strm) >0) +- gclFlushSocket(strm); +- else ++ if (SOCKET_STREAM_FD(strm) >0) ++ gclFlushSocket(strm); ++ else + #endif +- closed_stream(strm); +- break; +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; +- +- case smm_broadcast: +- for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr) +- flush_stream(x->c.c_car); +- break; ++ closed_stream(strm); ++ break; ++ case smm_file_synonym: ++ case smm_synonym: ++ strm = symbol_value(strm->sm.sm_object0); ++ if (type_of(strm) != t_stream) ++ FEwrong_type_argument(sLstream, strm); ++ goto BEGIN; + +- case smm_echo: +- case smm_two_way: +- strm = STREAM_OUTPUT_STREAM(strm); +- goto BEGIN; ++ case smm_broadcast: ++ for (x = strm->sm.sm_object0; !endp(x); x = x->c.c_cdr) ++ flush_stream(x->c.c_car); ++ break; + ++ case smm_echo: ++ case smm_two_way: ++ strm = STREAM_OUTPUT_STREAM(strm); ++ goto BEGIN; + +- case smm_string_output: +- break; ++ case smm_string_output: ++ break; + +- case smm_input: +- case smm_probe: +- case smm_concatenated: +- case smm_string_input: +- FEerror("Cannot flush the stream ~S.", 1, strm); ++ case smm_input: ++ case smm_probe: ++ case smm_concatenated: ++ case smm_string_input: ++ FEerror("Cannot flush the stream ~S.", 1, strm); + #ifdef USER_DEFINED_STREAMS +- case smm_user_defined: +- {object *old_vs_base = vs_base; +- object *old_vs_top = vs_top; +- vs_base = vs_top; +- vs_push(strm); +- super_funcall(strm->sm.sm_object1->str.str_self[4]); +- vs_base = old_vs_base; +- vs_top = old_vs_top; +- break; +- } ++ case smm_user_defined: ++ { ++ object *old_vs_base = vs_base; ++ object *old_vs_top = vs_top; ++ vs_base = vs_top; ++ vs_push(strm); ++ super_funcall(strm->sm.sm_object1->str.str_self[4]); ++ vs_base = old_vs_base; ++ vs_top = old_vs_top; ++ break; ++ } + + #endif + +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- } ++ default: ++ FEerror("Illegal stream mode for ~S.",1,strm); ++ } + } + + +@@ -1548,51 +1329,6 @@ BEGIN: + } + } + +-static int +-file_length(object strm) { +- +- BEGIN: +- switch (strm->sm.sm_mode) { +- case smm_input: +- case smm_output: +- case smm_io: +- case smm_probe: +- if (strm->sm.sm_fp == NULL) +- closed_stream(strm); +- return(file_len(strm->sm.sm_fp)); +- +- case smm_broadcast: +- for (strm=strm->sm.sm_object0;!endp(strm->c.c_cdr);strm=strm->c.c_cdr); +- if (strm==Cnil) +- return 0; +- else { +- strm=strm->c.c_car; +- goto BEGIN; +- } +- +- case smm_file_synonym: +- case smm_synonym: +- +- strm = symbol_value(strm->sm.sm_object0); +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; +- +- case smm_string_input: +- case smm_string_output: +- case smm_concatenated: +- case smm_two_way: +- case smm_echo: +- case smm_socket: +- return(-1); +- +- default: +- FEerror("Illegal stream mode for ~S.",1,strm); +- return(-1); +- } +- return(-1); +-} +- + int + file_column(object strm) { + int i; +@@ -1686,164 +1422,6 @@ load(const char *s) { + + } + +- +- +-static int +-file_synonym_stream_p(object x) { +- switch(type_of(x)) { +- case t_stream: +- switch(x->sm.sm_mode) { +- case smm_input: +- case smm_output: +- case smm_io: +- case smm_probe: +- case smm_file_synonym: +- return 1; +- case smm_synonym: +- return file_synonym_stream_p(x->sm.sm_object0->s.s_dbind); +- default: +- return 0; +- } +- default: +- return 0; +- } +-} +- +-LFD(Lmake_synonym_stream)() +-{ +- object x; +- +- check_arg(1); +- check_type_sym(&vs_base[0]); +- x = alloc_object(t_stream); +- x->sm.tt=x->sm.sm_mode = file_synonym_stream_p(vs_base[0]->s.s_dbind) ? (short)smm_file_synonym : (short)smm_synonym; +- x->sm.sm_fp = NULL; +- x->sm.sm_buffer = 0; +- x->sm.sm_object0 = vs_base[0]; +- x->sm.sm_object1 = OBJNULL; +- x->sm.sm_int = 0; +- x->sm.sm_flags=0; +- vs_base[0] = x; +-} +- +-LFD(Lmake_broadcast_stream)() { +- +- object x; +- int narg, i; +- +- narg = vs_top - vs_base; +- for (i = 0; i < narg; i++) +- if (type_of(vs_base[i]) != t_stream || +- !output_stream_p(vs_base[i])) +- TYPE_ERROR(vs_base[i], +- MMcons(sLand,MMcons(sLstream, +- MMcons(MMcons(sLsatisfies,MMcons(sLoutput_stream_p,Cnil)),Cnil)))); +- /* cannot_write(vs_base[i]); */ +- +- stack_list(); +- +- x = alloc_object(t_stream); +- x->sm.tt=x->sm.sm_mode = (short)smm_broadcast; +- x->sm.sm_fp = NULL; +- x->sm.sm_buffer = 0; +- x->sm.sm_object0 = vs_base[0]; +- x->sm.sm_object1 = OBJNULL; +- x->sm.sm_int = 0; +- x->sm.sm_flags=0; +- vs_base[0] = x; +- +-} +- +-LFD(Lmake_concatenated_stream)() { +- +- object x; +- int narg, i; +- +- narg = vs_top - vs_base; +- for (i = 0; i < narg; i++) +- if (type_of(vs_base[i]) != t_stream || +- !input_stream_p(vs_base[i])) +- cannot_read(vs_base[i]); +- +- stack_list(); +- +- x = alloc_object(t_stream); +- x->sm.tt=x->sm.sm_mode = (short)smm_concatenated; +- x->sm.sm_fp = NULL; +- x->sm.sm_buffer = 0; +- x->sm.sm_object0 = vs_base[0]; +- x->sm.sm_object1 = OBJNULL; +- x->sm.sm_int = 0; +- x->sm.sm_flags=0; +- vs_base[0] = x; +- +-} +- +-DEFUN("MAKE-TWO-WAY-STREAM", object, fLmake_two_way_stream,LISP,2,2,NONE,OO,OO,OO,OO,(object x,object y),"") { +- +- if (type_of(x) != t_stream || !input_stream_p(x)) TYPE_ERROR(x,sLinput_stream); +- if (type_of(y) != t_stream || !output_stream_p(y)) TYPE_ERROR(y,sLoutput_stream); +- RETURN1(make_two_way_stream(x,y)); +- +-} +- +-LFD(Lmake_echo_stream)() +-{ +- check_arg(2); +- +- if (type_of(vs_base[0]) != t_stream || +- !input_stream_p(vs_base[0])) +- TYPE_ERROR(vs_base[0],sLinput_stream); +- if (type_of(vs_base[1]) != t_stream || +- !output_stream_p(vs_base[1])) +- TYPE_ERROR(vs_base[1],sLoutput_stream); +- vs_base[0] = make_echo_stream(vs_base[0], vs_base[1]); +- vs_popp; +-} +- +-DEFUN("MAKE-STRING-OUTPUT-STREAM-INT",object,fLmake_string_output_stream_int,SI,0,0,NONE,OO,OO,OO,OO,(void),"") { +- +- RETURN1(make_string_output_stream(64)); +- +-} +- +- +-DEFUN("GET-OUTPUT-STREAM-STRING",object,fLget_output_stream_string,LISP, +- 1,1,NONE,OO,OO,OO,OO,(object stream),"") { +- +- if (type_of(stream) != t_stream || +- (enum smmode)stream->sm.sm_mode != smm_string_output) +- FEerror("~S is not a string-output stream.", 1, stream); +- stream = get_output_stream_string(stream); +- RETURN1(stream); +- +-} +- +-/* LFD(Lget_output_stream_string)() */ +-/* { */ +-/* check_arg(1); */ +- +-/* if (type_of(vs_base[0]) != t_stream || */ +-/* (enum smmode)vs_base[0]->sm.sm_mode != smm_string_output) */ +-/* FEerror("~S is not a string-output stream.", 1, vs_base[0]); */ +-/* vs_base[0] = get_output_stream_string(vs_base[0]); */ +-/* } */ +- +-/* +- (SI:OUTPUT-STREAM-STRING string-output-stream) +- +- extracts the string associated with the given +- string-output-stream. +-*/ +-LFD(siLoutput_stream_string)() +-{ +- check_arg(1); +- if (type_of(vs_base[0]) != t_stream || +- (enum smmode)vs_base[0]->sm.sm_mode != smm_string_output) +- FEerror("~S is not a string-output stream.", 1, vs_base[0]); +- vs_base[0] = vs_base[0]->sm.sm_object0; +-} +- + object + file_stream(object x) { + if (type_of(x)==t_stream) +@@ -1861,70 +1439,17 @@ file_stream(object x) { + return Cnil; + } + +-DEFUN("FILE-STREAM-P",object,fSfile_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- RETURN1(file_stream(x)!=Cnil ? Ct : Cnil); +-} +- +-DEFUN("SYNONYM-STREAM-P",object,fSsynonym_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_synonym ? Ct : Cnil); +-} +- +-DEFUN("BROADCAST-STREAM-P",object,fSbroadcast_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_broadcast ? Ct : Cnil); +-} +- +-DEFUN("ECHO-STREAM-P",object,fSecho_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_echo ? Ct : Cnil); +-} +- +-DEFUN("TWO-WAY-STREAM-P",object,fStwo_way_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_two_way ? Ct : Cnil); +-} +- +-DEFUN("CONCATENATED-STREAM-P",object,fSconcatenated_stream_p,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { +- RETURN1(type_of(x)==t_stream && x->sm.sm_mode==smm_concatenated ? Ct : Cnil); +-} +- +- +- +-LFD(Lstreamp)() +-{ +- check_arg(1); +- +- if (type_of(vs_base[0]) == t_stream) +- vs_base[0] = Ct; +- else +- vs_base[0] = Cnil; +-} +- +-LFD(Linput_stream_p)() +-{ +- check_arg(1); +- +- check_type_stream(&vs_base[0]); +- if (input_stream_p(vs_base[0])) +- vs_base[0] = Ct; +- else +- vs_base[0] = Cnil; +-} +- +-LFD(Loutput_stream_p)() +-{ +- check_arg(1); +- +- check_type_stream(&vs_base[0]); +- if (output_stream_p(vs_base[0])) +- vs_base[0] = Ct; +- else +- vs_base[0] = Cnil; +-} ++/* ++ Close_stream(strm) closes stream strm. ++ The abort_flag is not used now. ++*/ + +-@(defun close (strm &key abort) +-@ +- check_type_stream(&strm); +- close_stream(strm); +- @(return Ct) +-@) ++/* @(defun close (strm &key abort) */ ++/* @ */ ++/* check_type_stream(&strm); */ ++/* close_stream(strm); */ ++/* @(return Ct) */ ++/* @) */ + + DEFUN("OPEN-INT",object,fSopen_int,SI,8,8,NONE,OO,OO,OO,OO, + (object fn,object direction,object element_type,object if_exists, +@@ -1977,78 +1502,6 @@ DEFUN("OPEN-INT",object,fSopen_int,SI,8, + RETURN1(strm); + } + +- +-static fixnum /*FIXME, this duplicates code in gcl_iolib.lsp somwhat */ +-chars_per_write(object s) {/*s already a file-stream*/ +- +- fixnum i; +- +- s=s->sm.sm_object0; +- if (consp(s)) { +- s=s->c.c_cdr->c.c_car; +- i=fix(s); +- return ((i/CHAR_SIZE) + (i%CHAR_SIZE ? 1 : 0)); +- } else +- return 1; +- +-} +- +-@(defun file_position (file_stream &o position) +- fixnum i=0; +-@ +- check_type_stream(&file_stream); +- if (position == Cnil) { +- i = file_position(file_stream); +- if (i < 0) +- @(return Cnil) +- i/=chars_per_write(file_stream); +- @(return `make_fixnum(i)`) +- } else { +- if (position == sKstart) +- i = 0; +- else if (position == sKend) +- i = file_length(file_stream); +- else if (type_of(position) != t_fixnum || +- (i = fix((position))) < 0) +- FEerror("~S is an illegal file position~%\ +-for the file-stream ~S.", +- 2, position, file_stream); +- if (file_position_set(file_stream, i) < 0) +- @(return Cnil) +- @(return Ct) +- } +-@) +- +-LFD(Lfile_length)() +-{ +- int i; +- +- check_arg(1); +- check_type_stream(&vs_base[0]); +- i = file_length(vs_base[0]); +- if (i < 0) +- FEwrong_type_argument(sLfile_stream,vs_base[0]); +- else { +- i/=chars_per_write(vs_base[0]); +- vs_base[0] = make_fixnum(i); +- } +-} +- +-LFD(siLfile_column)() +-{ +- int i; +- +- check_arg(1); +- check_type_stream(&vs_base[0]); +- i = file_column(vs_base[0]); +- if (i < 0) +- FEwrong_type_argument(sLfile_stream,vs_base[0]); +- else +- vs_base[0] = make_fixnum(i); +-} +- +- +- + DEFVAR("*COLLECT-BINARY-MODULES*",sSAcollect_binary_modulesA,SI,sLnil,""); + DEFVAR("*BINARY-MODULES*",sSAbinary_modulesA,SI,Cnil,""); + DEFVAR("*DISABLE-RECOMPILE*",sSAdisable_recompile,SI,Ct,""); +@@ -2118,86 +1571,48 @@ DEFUN("LOAD-FASL",object,fSload_fasl,SI, + + } + +-static void +-FFN(siLget_string_input_stream_index)() +-{ +- check_arg(1); +- check_type_stream(&vs_base[0]); +- if ((enum smmode)vs_base[0]->sm.sm_mode != smm_string_input) +- FEerror("~S is not a string-input stream.", 1, vs_base[0]); +- vs_base[0] = make_fixnum(STRING_INPUT_STREAM_NEXT(vs_base[0])); +-} +- +-LFD(siLmake_string_output_stream_from_string)() +-{ +- object strng, strm; +- +- check_arg(1); +- strng = vs_base[0]; +- if (!stringp(strng) || !strng->st.st_hasfillp) +- FEerror("~S is not a string with a fill-pointer.", 1, strng); +- strm = alloc_object(t_stream); +- strm->sm.tt=strm->sm.sm_mode = (short)smm_string_output; +- strm->sm.sm_fp = NULL; +- strm->sm.sm_buffer = 0; +- STRING_STREAM_STRING(strm) = strng; +- strm->sm.sm_object1 = OBJNULL; +- /* strm->sm.sm_int0 = strng->st.st_fillp; */ +- STREAM_FILE_COLUMN(strm) = 0;/*FIXME*/ +- strm->sm.sm_flags=0; +- vs_base[0] = strm; +-} +- +-LFD(siLcopy_stream)() +-{ +- object in, out; +- +- check_arg(2); +- check_type_stream(&vs_base[0]); +- check_type_stream(&vs_base[1]); +- in = vs_base[0]; +- out = vs_base[1]; +- while (!stream_at_end(in)) +- writec_stream(readc_stream(in), out); +- flush_stream(out); +- vs_base[0] = Ct; +- vs_popp; +-#ifdef AOSVS ++DEFUN("COPY-STREAM",object,fScopy_stream,SI,2,2,NONE,OO,OO,OO,OO,(object in,object out),"") { ++ ++ check_type_stream(&in); ++ check_type_stream(&out); ++ while (!stream_at_end(in)) ++ writec_stream(readc_stream(in), out); ++ flush_stream(out); ++ RETURN1(Ct); + +-#endif + } + + static void + cannot_open(object fn) { +- FILE_ERROR(fn,"Cannot open"); ++ FILE_ERROR(fn,"Cannot open"); + } + + static void + cannot_create(object fn) { +- FILE_ERROR(fn,"Cannot create"); ++ FILE_ERROR(fn,"Cannot create"); + } + + static void + cannot_read(object strm) { +- FEerror("Cannot read the stream ~S.", 1, strm); ++ FEerror("Cannot read the stream ~S.", 1, strm); + } + + static void + cannot_write(object strm) { +- FEerror("Cannot write to the stream ~S.", 1, strm); ++ FEerror("Cannot write to the stream ~S.", 1, strm); + } + + #ifdef USER_DEFINED_STREAMS + /* more support for user defined streams */ + static void +-FFN(siLuser_stream_state)() +-{ ++FFN(siLuser_stream_state)() { ++ + check_arg(1); + + if(vs_base[0]->sm.sm_object1) +- vs_base[0] = vs_base[0]->sm.sm_object1->str.str_self[0]; ++ vs_base[0] = vs_base[0]->sm.sm_object1->str.str_self[0]; + else +- FEerror("sLtream data NULL ~S", 1, vs_base[0]); ++ FEerror("sLtream data NULL ~S", 1, vs_base[0]); + } + #endif + +@@ -2206,19 +1621,12 @@ closed_stream(object strm) { + + if (!GET_STREAM_FLAG(strm,gcl_sm_had_error)) + { +- SET_STREAM_FLAG(strm,gcl_sm_had_error,1); +- FEerror("The stream ~S is already closed.", 1, strm); ++ SET_STREAM_FLAG(strm,gcl_sm_had_error,1); ++ FEerror("The stream ~S is already closed.", 1, strm); + } + + } + +- +- +-/* returns a stream with which one can safely do fwrite to the x->sm.sm_fp +- or nil. +- */ +- +- + /* coerce stream to one so that x->sm.sm_fp is suitable for fread and fwrite, + Return nil if this is not possible. + */ +@@ -2227,60 +1635,60 @@ object + coerce_stream(object strm,int out) { + + BEGIN: +- if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- switch (strm->sm.sm_mode){ +- case smm_file_synonym: +- case smm_synonym: +- strm = symbol_value(strm->sm.sm_object0); + if (type_of(strm) != t_stream) +- FEwrong_type_argument(sLstream, strm); +- goto BEGIN; ++ FEwrong_type_argument(sLstream, strm); ++ switch (strm->sm.sm_mode){ ++ case smm_file_synonym: ++ case smm_synonym: ++ strm = symbol_value(strm->sm.sm_object0); ++ if (type_of(strm) != t_stream) ++ FEwrong_type_argument(sLstream, strm); ++ goto BEGIN; + +- case smm_two_way: +- case smm_echo: +- if (out)strm = STREAM_OUTPUT_STREAM(strm); ++ case smm_two_way: ++ case smm_echo: ++ if (out)strm = STREAM_OUTPUT_STREAM(strm); + else strm = STREAM_INPUT_STREAM(strm); +- goto BEGIN; +- case smm_output: +- if (!out) cannot_read(strm); +- break; +- case smm_string_output: +- if (!out) cannot_read(strm); +- return (strm); +- break; +- case smm_input: ++ goto BEGIN; ++ case smm_output: ++ if (!out) cannot_read(strm); ++ break; ++ case smm_string_output: ++ if (!out) cannot_read(strm); ++ return (strm); ++ break; ++ case smm_input: + if (out) cannot_write(strm); +- break; +- case smm_string_input: ++ break; ++ case smm_string_input: + if (out) cannot_write(strm); + return (strm); +- break; +- case smm_io: +-/* case smm_socket: */ +- break; +- +- default: +- strm=Cnil; +- } +- if (strm!=Cnil +- && (strm->sm.sm_fp == NULL)) +- closed_stream(strm); +- return(strm); ++ break; ++ case smm_io: ++ /* case smm_socket: */ ++ break; ++ ++ default: ++ strm=Cnil; ++ } ++ if (strm!=Cnil ++ && (strm->sm.sm_fp == NULL)) ++ closed_stream(strm); ++ return(strm); ++ + } + +-static void +-FFN(siLfp_output_stream)() +-{check_arg(1); +- vs_base[0]=coerce_stream(vs_base[0],1); ++DEFUN("FP-INPUT-STREAM",object,fSfp_input_stream,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { ++ ++ RETURN1(coerce_stream(x,0)); ++ + } + +-static void +-FFN(siLfp_input_stream)() +-{check_arg(1); +- vs_base[0]=coerce_stream(vs_base[0],0); ++DEFUN("FP-OUTPUT-STREAM",object,fSfp_output_stream,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { ++ ++ RETURN1(coerce_stream(x,1)); ++ + } +- + + DEFUN("FWRITE",object,fSfwrite,SI,4,4,NONE,OO,OO,OO,OO, + (object vector,object start,object count,object stream),"") { +@@ -2328,7 +1736,7 @@ DEFUN("FREAD",object,fSfread,SI,4,4,NONE + Results: + Side Effects: The buffer may be filled, and the fill pointer + of the buffer may be changed. +- */ ++*/ + static void + putCharGclSocket(object strm,int ch) { + +@@ -2349,70 +1757,57 @@ putCharGclSocket(object strm,int ch) { + static void + gclFlushSocket(object strm) { + +- int fd = SOCKET_STREAM_FD(strm); +- object bufp = SOCKET_STREAM_BUFFER(strm); +- int i=0; +- int err; +- int wrote; +- if (!GET_STREAM_FLAG(strm,gcl_sm_output) +- || GET_STREAM_FLAG(strm,gcl_sm_had_error)) +- return; ++ int fd = SOCKET_STREAM_FD(strm); ++ object bufp = SOCKET_STREAM_BUFFER(strm); ++ int i=0; ++ int err; ++ int wrote; ++ if (!GET_STREAM_FLAG(strm,gcl_sm_output) ++ || GET_STREAM_FLAG(strm,gcl_sm_had_error)) ++ return; + #define AMT_TO_WRITE 500 +- while(i< bufp->ust.ust_fillp) { +- wrote =TcpOutputProc ( fd, +- &(bufp->st.st_self[i]), +- bufp->ust.ust_fillp-i > AMT_TO_WRITE ? AMT_TO_WRITE : bufp->ust.ust_fillp-i, +- &err ++ while(i< bufp->ust.ust_fillp) { ++ wrote =TcpOutputProc ( fd, ++ &(bufp->st.st_self[i]), ++ bufp->ust.ust_fillp-i > AMT_TO_WRITE ? AMT_TO_WRITE : bufp->ust.ust_fillp-i, ++ &err + #ifdef __MINGW32__ +- , TRUE /* Wild guess as to whether it should block or not */ ++ , TRUE /* Wild guess as to whether it should block or not */ + #endif +-); +- if (wrote < 0) { +- SET_STREAM_FLAG(strm,gcl_sm_had_error,1); +- close_stream(strm); +- FEerror("error writing to socket: errno= ~a",1,make_fixnum(err)); +- +- } +- i+= wrote; ++ ); ++ if (wrote < 0) { ++ SET_STREAM_FLAG(strm,gcl_sm_had_error,1); ++ close_stream(strm); ++ FEerror("error writing to socket: errno= ~a",1,make_fixnum(err)); ++ + } +- bufp->ust.ust_fillp=0; ++ i+= wrote; ++ } ++ ++ bufp->ust.ust_fillp=0; ++ + } + +-static +-object ++static object + make_socket_stream(int fd,enum gcl_sm_flags mode,object server,object host,object port,object async) { + + object x; +- if (fd < 0 ) +- { +- FEerror("Could not connect",0); ++ if (fd<0) { ++ FEerror("Could not connect",0); + } +- x = alloc_object(t_stream); +- x->sm.tt=x->sm.sm_mode = smm_socket; +- x->sm.sm_buffer = 0; ++ x=FFN(fSallocate_basic_stream)(smm_socket); + x->sm.sm_object0 = list(3,server,host,port); +- x->sm.sm_object1 = 0; +- x->sm.sm_int = 0; +- x->sm.sm_flags=0; + SOCKET_STREAM_FD(x)= fd; + SET_STREAM_FLAG(x,mode,1); + SET_STREAM_FLAG(x,gcl_sm_tcp_async,(async!=Cnil)); +- /* +- if (mode == gcl_sm_output) +- { fp=fdopen(fd,(mode==gcl_sm_input ? "r" : "w")); +- if (fp==NULL) FEerror("Could not connect",0); +- x->sm.sm_fp = fp; +- setup_stream_buffer(x); +- } else +- */ +- { +- object buffer; +- x->sm.sm_fp = NULL; +- buffer=alloc_string((BUFSIZ < 4096 ? 4096 : BUFSIZ)); +- SOCKET_STREAM_BUFFER(x) =buffer; +- buffer->ust.ust_self = alloc_contblock(buffer->st.st_dim); +- buffer->ust.ust_fillp = 0; +- } ++ { ++ object buffer; ++ x->sm.sm_fp = NULL; ++ buffer=alloc_string((BUFSIZ < 4096 ? 4096 : BUFSIZ)); ++ SOCKET_STREAM_BUFFER(x) =buffer; ++ buffer->ust.ust_self = alloc_contblock(buffer->st.st_dim); ++ buffer->ust.ust_fillp = 0; ++ } + return x; + } + +@@ -2462,43 +1857,35 @@ rmc(int e,void *pid) { + #endif + #endif + +-@(static defun socket (port &key host server async myaddr myport daemon) +- /* +- HOST is a string then connection is made to that +- ip or domain address. +- SERVER A function to call if this is to be a server +- +- ASYNC socket returned immideiately. read or flush +- will block till open if in non blocking mode +- MYADDR client's ip address. Useful if have several +- net interfaces +- MYPORT port to use on client side +- */ +-int fd; +-int isServer = 0; +-int inPort; +-char buf1[500]; +-char buf2[500]; +-char *myaddrPtr=buf1,*hostPtr=buf2; +-object x=Cnil; +-@ ++DEFUN("SOCKET-INT",object,fSsocket_int,SI,7,7,NONE,OO,OO,OO,OO, ++ (object port,object host,object server,object async,object myaddr, ++ object myport,object daemon),"") { ++ ++ int fd; ++ int isServer = 0; ++ int inPort; ++ char buf1[500]; ++ char buf2[500]; ++ char *myaddrPtr=buf1,*hostPtr=buf2; ++ object x=Cnil; ++ + if (stringp(host)) { + hostPtr=lisp_copy_to_null_terminated(host,hostPtr,sizeof(buf1)); + } else { hostPtr = NULL; } + +- if (fLfunctionp(server) == Ct) { +- isServer=1; +- } +- +- if (myaddr != Cnil) { +- myaddrPtr=lisp_copy_to_null_terminated(myaddr,myaddrPtr,sizeof(buf2)); +- } else { myaddrPtr = NULL; } +- if (isServer == 0 && hostPtr == NULL) { +- FEerror("You must supply at least one of :host hostname or :server function",0); +- } +- Iis_fixnum(port); +- inPort = (myport == Cnil ? 0 : fix(Iis_fixnum(myport))); +- ++ if (fLfunctionp(server) == Ct) { ++ isServer=1; ++ } ++ ++ if (myaddr != Cnil) { ++ myaddrPtr=lisp_copy_to_null_terminated(myaddr,myaddrPtr,sizeof(buf2)); ++ } else { myaddrPtr = NULL; } ++ if (isServer == 0 && hostPtr == NULL) { ++ FEerror("You must supply at least one of :host hostname or :server function",0); ++ } ++ Iis_fixnum(port); ++ inPort = (myport == Cnil ? 0 : fix(Iis_fixnum(myport))); ++ + #ifdef BSD + + if (isServer && daemon != Cnil) { +@@ -2552,7 +1939,7 @@ object x=Cnil; + x = make_two_way_stream + (make_socket_stream(fd,gcl_sm_input,server,host,port,async), + make_socket_stream(fd,gcl_sm_output,server,host,port,async)); +- ++ + for (;;) { + + fd_set fds; +@@ -2605,10 +1992,10 @@ object x=Cnil; + make_socket_stream(fd,gcl_sm_output,server,host,port,async)); + + } +- +- @(return `x`); +- +-@) ++ ++ RETURN1(x); ++ ++} + + DEF_ORDINARY("MYADDR",sKmyaddr,KEYWORD,""); + DEF_ORDINARY("MYPORT",sKmyport,KEYWORD,""); +@@ -2619,26 +2006,19 @@ DEF_ORDINARY("DAEMON",sKdaemon,KEYWORD," + DEF_ORDINARY("PERSISTENT",sKpersistent,KEYWORD,""); + DEF_ORDINARY("SOCKET",sSsocket,SI,""); + ++DEFUN("ACCEPT",object,fSaccept,SI,1,1,NONE,OO,OO,OO,OO,(object x),"") { ++ ++ RETURN1(maccept(x)); + +-@(static defun accept (x) +-@ +- x=maccept(x); +- @(return `x`); +-@) ++} + + #endif /* HAVE_NSOCKET */ + + object + fresh_synonym_stream_to_terminal_io(void) { + +- object x = alloc_object(t_stream); +- x->sm.tt=x->sm.sm_mode = (short)smm_synonym; +- x->sm.sm_fp = NULL; +- x->sm.sm_buffer = 0; ++ object x=FFN(fSallocate_basic_stream)(smm_synonym); + x->sm.sm_object0 = sLAterminal_ioA; +- x->sm.sm_object1 = OBJNULL; +- x->sm.sm_int = 0; /* unused */ +- x->sm.sm_flags=0; + return x; + + } +@@ -2655,44 +2035,31 @@ DEFVAR("*TRACE-OUTPUT*",sLAtrace_outputA + + + void +-gcl_init_file(void) +-{ +- object standard_input; +- object standard_output; +- object standard; +- +- standard_input = alloc_object(t_stream); +- standard_input->sm.tt=standard_input->sm.sm_mode = (short)smm_input; +- standard_input->sm.sm_fp = stdin; +- standard_input->sm.sm_buffer = 0; +- standard_input->sm.sm_object0 = sLcharacter; +- standard_input->sm.sm_object1 = make_simple_string("stdin"); +- standard_input->sm.sm_int = 0; /* unused */ +- standard_input->sm.sm_flags = 0; +- +- standard_output = alloc_object(t_stream); +- standard_output->sm.tt=standard_output->sm.sm_mode = (short)smm_output; +- standard_output->sm.sm_fp = stdout; +- standard_output->sm.sm_buffer = 0; +- standard_output->sm.sm_object0 = sLcharacter; +- standard_output->sm.sm_object1 = make_simple_string("stdout"); +- standard_output->sm.sm_int = 0; /* unused */ +- standard_output->sm.sm_flags=0; +- +- standard_error = alloc_object(t_stream); +- standard_error->sm.tt=standard_error->sm.sm_mode = (short)smm_output; +- standard_error->sm.sm_fp = stderr; +- standard_error->sm.sm_buffer = 0; +- standard_error->sm.sm_object0 = sLcharacter; +- standard_error->sm.sm_object1 = make_simple_string("stderr"); +- standard_error->sm.sm_int = 0; /* unused */ +- standard_error->sm.sm_flags=0; +- enter_mark_origin(&standard_error); +- +- terminal_io = standard +- = make_two_way_stream(standard_input, standard_output); +- enter_mark_origin(&terminal_io); ++gcl_init_file(void) { + ++ object standard_input; ++ object standard_output; ++ object standard; ++ ++ standard_input=FFN(fSallocate_basic_stream)(smm_input); ++ standard_input->sm.sm_fp = stdin; ++ standard_input->sm.sm_object0 = sLcharacter; ++ standard_input->sm.sm_object1 = make_simple_string("stdin"); ++ ++ standard_output=FFN(fSallocate_basic_stream)(smm_output); ++ standard_output->sm.sm_fp = stdout; ++ standard_output->sm.sm_object0 = sLcharacter; ++ standard_output->sm.sm_object1 = make_simple_string("stdout"); ++ ++ standard_error=FFN(fSallocate_basic_stream)(smm_output); ++ standard_error->sm.sm_fp = stderr; ++ standard_error->sm.sm_object0 = sLcharacter; ++ standard_error->sm.sm_object1 = make_simple_string("stderr"); ++ enter_mark_origin(&standard_error); ++ ++ terminal_io = standard ++ = make_two_way_stream(standard_input, standard_output); ++ enter_mark_origin(&terminal_io); + + } + +@@ -2726,98 +2093,17 @@ DEF_ORDINARY("SET-DEFAULT-PATHNAME",sKse + DEF_ORDINARY("SUPERSEDE",sKsupersede,KEYWORD,""); + DEF_ORDINARY("VERBOSE",sKverbose,KEYWORD,""); + +- +-DEFUN("STREAM-OBJECT0",object,fSstream_object0,SI,1,1,NONE,OO,OO,OO,OO,(object strm),"") { +- +- object x; +- +- if (type_of(strm)!=t_stream) +- TYPE_ERROR(strm,sLstream); +- x=strm->sm.sm_object0; +- x=x==OBJNULL ? Cnil : x; +- RETURN1(x); +- +-} +- +-DEFUN("STREAM-OBJECT1",object,fSstream_object1,SI,1,1,NONE,OO,OO,OO,OO,(object strm),"") { +- +- object x; +- +- if (type_of(strm)!=t_stream) +- TYPE_ERROR(strm,sLstream); +- x=strm->sm.sm_object1; +- x=x==OBJNULL ? Cnil : x; +- RETURN1(x); +- +-} +- + void +-gcl_init_file_function() +-{ ++gcl_init_file_function() { + +- +-#ifdef UNIX +- FASL_string = make_simple_string("o"); +- make_si_constant("*EOF*",make_fixnum(EOF)); +-#endif +-#ifdef AOSVS +- +-#endif +- enter_mark_origin(&FASL_string); +-#ifdef UNIX +- LSP_string = make_simple_string("lsp"); +-#endif +-#ifdef AOSVS +- +-#endif +- enter_mark_origin(&LSP_string); +- make_si_function("FP-INPUT-STREAM", siLfp_input_stream); +- make_si_function("FP-OUTPUT-STREAM", siLfp_output_stream); +- +- make_function("MAKE-SYNONYM-STREAM", Lmake_synonym_stream); +- make_function("MAKE-BROADCAST-STREAM", Lmake_broadcast_stream); +- make_function("MAKE-CONCATENATED-STREAM", +- Lmake_concatenated_stream); +-/* make_function("MAKE-TWO-WAY-STREAM", Lmake_two_way_stream); */ +- make_function("MAKE-ECHO-STREAM", Lmake_echo_stream); +-/* make_function("MAKE-STRING-OUTPUT-STREAM", */ +-/* Lmake_string_output_stream); */ +-/* make_function("GET-OUTPUT-STREAM-STRING", */ +-/* Lget_output_stream_string); */ +- +- make_si_function("OUTPUT-STREAM-STRING", siLoutput_stream_string); +-/* make_si_function("FWRITE",Lfwrite); */ +-/* make_si_function("FREAD",Lfread); */ +-#ifdef HAVE_NSOCKET +- make_si_function("SOCKET",Lsocket); +- make_si_function("ACCEPT",Laccept); +-#endif +- make_function("STREAMP", Lstreamp); +- make_function("INPUT-STREAM-P", Linput_stream_p); +- make_function("OUTPUT-STREAM-P", Loutput_stream_p); +- make_function("CLOSE", Lclose); +- +-/* make_si_function("OPEN1", Lopen1); */ +- +- make_function("FILE-POSITION", Lfile_position); +- make_function("FILE-LENGTH", Lfile_length); +- make_si_function("FILE-COLUMN", siLfile_column); +-/* make_function("READ-SEQUENCE", Lread_sequence); */ +-/* make_function("WRITE-SEQUENCE", Lwrite_sequence); */ +- +- /* make_si_function("LOAD1", Lload1); */ +- +- make_si_function("GET-STRING-INPUT-STREAM-INDEX", +- siLget_string_input_stream_index); +- make_si_function("MAKE-STRING-OUTPUT-STREAM-FROM-STRING", +- siLmake_string_output_stream_from_string); +- make_si_function("COPY-STREAM", siLcopy_stream); ++ make_si_constant("*EOF*",make_fixnum(EOF)); + + #ifdef USER_DEFINED_STREAMS +- make_si_function("USER-STREAM-STATE", siLuser_stream_state); ++ make_si_function("USER-STREAM-STATE", siLuser_stream_state); + #endif + + #ifdef USE_READLINE +- gcl_init_readline_function(); ++ gcl_init_readline_function(); + #endif ++ + } +--- gcl27-2.7.1.orig/o/read.d ++++ gcl27-2.7.1/o/read.d +@@ -2328,30 +2328,14 @@ DEFUN("SET-READTABLE-CASE",object,fSset_ + } + @) + +-static object +-string_to_object(object x) { ++DEFUN("STRING-TO-OBJECT-INT",object,fSstring_to_object_int,SI,1,1,NONE,OO,OO,OO,OO,(object in),"") { + +- object in; +- vs_mark; ++ preserving_whitespace_flag = FALSE; ++ detect_eos_flag = FALSE; ++ return(read_object_non_recursive(in)); + +- in = fSmake_string_input_stream_int(x, 0, VLEN(x)); +- vs_push(in); +- preserving_whitespace_flag = FALSE; +- detect_eos_flag = FALSE; +- x = read_object_non_recursive(in); +- vs_reset; +- return(x); + } + +-LFD(siLstring_to_object)() +-{ +- check_arg(1); +- +- check_type_string(&vs_base[0]); +- vs_base[0] = string_to_object(vs_base[0]); +-} +- +- + static void + FFN(siLstandard_readtable)() + { +@@ -2529,21 +2513,7 @@ gcl_init_read() + void + gcl_init_read_function() + { +-/* make_function("READ", Lread); */ +-/* make_function("READ-PRESERVING-WHITESPACE",Lread_preserving_whitespace); */ +-/* make_function("READ-DELIMITED-LIST", Lread_delimited_list); */ +-/* make_function("READ-LINE", Lread_line); */ +-/* make_function("READ-CHAR", Lread_char); */ +-/* make_function("UNREAD-CHAR", Lunread_char); */ +-/* make_function("PEEK-CHAR", Lpeek_char); */ +-/* make_function("LISTEN", Llisten); */ +-/* make_function("READ-CHAR-NO-HANG", Lread_char_no_hang); */ + make_function("CLEAR-INPUT", Lclear_input); +- +-/* make_function("PARSE-INTEGER", Lparse_integer); */ +- +-/* make_function("READ-BYTE", Lread_byte); */ +- + make_function("COPY-READTABLE", Lcopy_readtable); + make_function("READTABLEP", Lreadtablep); + make_function("SET-SYNTAX-FROM-CHAR", Lset_syntax_from_char); +@@ -2555,9 +2525,8 @@ gcl_init_read_function() + + make_si_function("SHARP-COMMA-READER-FOR-COMPILER",siLsharp_comma_reader_for_compiler); + +- make_si_function("STRING-TO-OBJECT",siLstring_to_object); +- + make_si_function("STANDARD-READTABLE",siLstandard_readtable); ++ + } + + object sSPinit; diff --git a/debian/patches/Version_2_7_2pre18 b/debian/patches/Version_2_7_2pre18 new file mode 100644 index 00000000..a5ac13ea --- /dev/null +++ b/debian/patches/Version_2_7_2pre18 @@ -0,0 +1,4473 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 13 2026 12:16:53 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +Bug-Debian: https://bugs.debian.org/1105309 +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -148,15 +148,17 @@ ARCHT_H=h/elf32_armhf_reloc.h h/elf32_ar + h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h h/solaris-i386.h + BUILT_H=h/new_decl.h o/boot.h h/cmpinclude.h + +-C_SRC=o/typespec.c o/alloc.c o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\ ++C_SRC=o/typespec.c o/alloc.c o/gbc.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\ + o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c o/conditional.c o/block.c o/iteration.c\ + o/prog.c o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c o/num_comp.c\ + o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c o/num_rand.c o/earith.c\ + o/array.c o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c\ + o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c o/fat_string.c\ +- o/run_process.c o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\ +- o/clxsocket.c o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \ +- o/bcmp.c o/bcopy.c o/bzero.c o/user_init.c o/user_match.c o/mapfun.c ++ o/run_process.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\ ++ o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \ ++ o/user_init.c o/user_match.c o/mapfun.c ++# o/bitop.c o/nfunlink.c o/clxsocket.c ++# o/bcmp.c o/bcopy.c o/bzero.c + + D_SRC=o/character.d o/file.d o/gcl_readline.d o/hash.d o/list.d o/package.d o/pathname.d o/print.d\ + o/read.d o/sequence.d o/string.d o/symbol.d +@@ -255,13 +257,19 @@ unixport/saved_%: | unixport/raw_% unixp + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ +- GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ ++ GCL_LSPSYSDIR=../$(srcdir)/unixport/ \ + ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ +- rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue ++ rm -f ../unixport/gcl_cmpnopt.lsp + rm -rf sb_$* + + unixport/raw_%: unixport/lib%.a $(FF) $(LF) + $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro ++ ! which otool >/dev/null || \ ++ ! otool -l $@ |grep -q LC_DYLD_CHAINED_FIXUPS || \ ++ ( echo Relinking raw image for mac arm && \ ++ $(CC) \ ++ $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \ ++ $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS)) + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ + unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp +@@ -277,12 +285,13 @@ unixport/lib%.a: lib/libbase_gcl.a $(LIB + $(addprefix unixport/lib,$(addsuffix .a,gcl_gprof ansi_gcl_gprof)): \ + unixport/lib%.a:lib/libbase_gcl_gprof.a unixport/sys_%.o + +-.POSIX: # parallel job ordering + E0=s typep nr deftype cmptype cmpinline cmpflet + L0=c listlib seqlib type evalmacros + E0_OBJS=$(addprefix gcl_,$(addsuffix .o,$(E0))) + M0_OBJS=$(filter-out $(E0_OBJS) $(L0_OBJS),$(L_OBJS)) + L0_OBJS=$(addprefix gcl_,$(addsuffix .o,$(L0))) ++$(addprefix gcl0/,$(L0_OBJS)): | $(addprefix gcl0/,$(M0_OBJS)) ++$(addprefix gcl0/,$(M0_OBJS)): | $(addprefix gcl0/,$(E0_OBJS)) + unixport/libgcl0.a: $(addprefix gcl0/,$(E0_OBJS) $(M0_OBJS) $(L0_OBJS)) + + $(addprefix unixport/lib,$(addsuffix .a,gcl1 gcl2 gcl3 gcl)):\ +@@ -320,6 +329,7 @@ unixport/pcl_gcl: | unixport/saved_mod_ + unixport/ansi_gcl: | unixport/saved_pcl_gcl + $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | % + echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|) ++ + $(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | % + ln -snf $$(basename $(word 2,$|)) $@ + +@@ -353,8 +363,8 @@ $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o + $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp + gcl0/%.o: | unixport/gcl0 + rm -f $(@D)/$*.done +- $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ +- [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ ++ $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ ++ [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ + ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link + + $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -176,29 +176,27 @@ lib_libbase_gcl_a_AR = $(AR) $(ARFLAGS) + lib_libbase_gcl_a_RANLIB = $(RANLIB) + lib_libbase_gcl_a_LIBADD = + am__lib_libbase_gcl_a_SOURCES_DIST = o/typespec.c o/alloc.c o/gbc.c \ +- o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ +- o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ +- o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ +- o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ +- o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ +- o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ +- o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ +- o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ +- o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ +- o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ +- o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ +- o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ +- o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ +- h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ +- h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ +- h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ +- h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ +- h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ +- h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ +- h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ +- o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ +- h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \ +- h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \ ++ o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c \ ++ o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c \ ++ o/conditional.c o/block.c o/iteration.c o/prog.c o/multival.c \ ++ o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c \ ++ o/num_comp.c o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c \ ++ o/num_rand.c o/earith.c o/array.c o/regexpr.c o/structure.c \ ++ o/toplevel.c o/backq.c o/format.c o/unixfsys.c o/unixfasl.c \ ++ o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c \ ++ o/fat_string.c o/run_process.c o/usig.c o/usig2.c o/utils.c \ ++ o/makefun.c o/sockets.c o/gmp_wrappers.c o/nsocket.c \ ++ o/prelink.c o/sfasl.c o/msbrk.c o/user_init.c o/user_match.c \ ++ o/mapfun.c h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h \ ++ h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h h/funlink.h \ ++ h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h \ ++ h/linux.h h/lu.h h/make-init.h h/mp.h h/notcomp.h \ ++ h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h \ ++ h/pbits.h h/pool.h h/prelink.h h/protoize.h h/ptable.h \ ++ h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \ ++ h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h \ ++ h/bfdef.h h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h \ ++ o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \ + h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \ + h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \ + h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \ +@@ -226,9 +224,9 @@ am__lib_libbase_gcl_a_SOURCES_DIST = o/t + h/solaris-i386.h o/boot.c + am__dirstamp = $(am__leading_dot)dirstamp + am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \ +- o/bitop.$(OBJEXT) o/main.$(OBJEXT) o/eval.$(OBJEXT) \ +- o/macros.$(OBJEXT) o/lex.$(OBJEXT) o/bds.$(OBJEXT) \ +- o/frame.$(OBJEXT) o/predicate.$(OBJEXT) o/reference.$(OBJEXT) \ ++ o/main.$(OBJEXT) o/eval.$(OBJEXT) o/macros.$(OBJEXT) \ ++ o/lex.$(OBJEXT) o/bds.$(OBJEXT) o/frame.$(OBJEXT) \ ++ o/predicate.$(OBJEXT) o/reference.$(OBJEXT) \ + o/assignment.$(OBJEXT) o/bind.$(OBJEXT) o/let.$(OBJEXT) \ + o/conditional.$(OBJEXT) o/block.$(OBJEXT) \ + o/iteration.$(OBJEXT) o/prog.$(OBJEXT) o/multival.$(OBJEXT) \ +@@ -242,12 +240,11 @@ am__objects_1 = o/typespec.$(OBJEXT) o/a + o/unixfasl.$(OBJEXT) o/error.$(OBJEXT) o/unixtime.$(OBJEXT) \ + o/unixsys.$(OBJEXT) o/unixsave.$(OBJEXT) o/funlink.$(OBJEXT) \ + o/fat_string.$(OBJEXT) o/run_process.$(OBJEXT) \ +- o/nfunlink.$(OBJEXT) o/usig.$(OBJEXT) o/usig2.$(OBJEXT) \ +- o/utils.$(OBJEXT) o/makefun.$(OBJEXT) o/sockets.$(OBJEXT) \ +- o/gmp_wrappers.$(OBJEXT) o/clxsocket.$(OBJEXT) \ +- o/nsocket.$(OBJEXT) o/prelink.$(OBJEXT) o/sfasl.$(OBJEXT) \ +- o/msbrk.$(OBJEXT) o/bcmp.$(OBJEXT) o/bcopy.$(OBJEXT) \ +- o/bzero.$(OBJEXT) o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \ ++ o/usig.$(OBJEXT) o/usig2.$(OBJEXT) o/utils.$(OBJEXT) \ ++ o/makefun.$(OBJEXT) o/sockets.$(OBJEXT) \ ++ o/gmp_wrappers.$(OBJEXT) o/nsocket.$(OBJEXT) \ ++ o/prelink.$(OBJEXT) o/sfasl.$(OBJEXT) o/msbrk.$(OBJEXT) \ ++ o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \ + o/mapfun.$(OBJEXT) + am__objects_2 = + @AMM_LIBBOOT_FALSE@am__objects_3 = o/boot.$(OBJEXT) +@@ -265,29 +262,27 @@ lib_libbase_gcl_gprof_a_AR = $(AR) $(ARF + lib_libbase_gcl_gprof_a_RANLIB = $(RANLIB) + lib_libbase_gcl_gprof_a_LIBADD = + am__lib_libbase_gcl_gprof_a_SOURCES_DIST = o/typespec.c o/alloc.c \ +- o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ +- o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ +- o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ +- o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ +- o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ +- o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ +- o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ +- o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ +- o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ +- o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ +- o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ +- o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ +- o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ +- h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ +- h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ +- h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ +- h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ +- h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ +- h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ +- h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ +- o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ +- h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \ +- h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \ ++ o/gbc.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c \ ++ o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c \ ++ o/conditional.c o/block.c o/iteration.c o/prog.c o/multival.c \ ++ o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c \ ++ o/num_comp.c o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c \ ++ o/num_rand.c o/earith.c o/array.c o/regexpr.c o/structure.c \ ++ o/toplevel.c o/backq.c o/format.c o/unixfsys.c o/unixfasl.c \ ++ o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c \ ++ o/fat_string.c o/run_process.c o/usig.c o/usig2.c o/utils.c \ ++ o/makefun.c o/sockets.c o/gmp_wrappers.c o/nsocket.c \ ++ o/prelink.c o/sfasl.c o/msbrk.c o/user_init.c o/user_match.c \ ++ o/mapfun.c h/compbas2.h h/compbas.h h/compprotos.h h/cstack.h \ ++ h/enum.h h/error.h h/eval.h h/fixnum.h h/frame.h h/funlink.h \ ++ h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h \ ++ h/linux.h h/lu.h h/make-init.h h/mp.h h/notcomp.h \ ++ h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h \ ++ h/pbits.h h/pool.h h/prelink.h h/protoize.h h/ptable.h \ ++ h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \ ++ h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h \ ++ h/bfdef.h h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h \ ++ o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \ + h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \ + h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \ + h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \ +@@ -316,7 +311,6 @@ am__lib_libbase_gcl_gprof_a_SOURCES_DIST + am__objects_5 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT) \ +- o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-main.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-eval.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-macros.$(OBJEXT) \ +@@ -361,21 +355,16 @@ am__objects_5 = o/lib_libbase_gcl_gprof_ + o/lib_libbase_gcl_gprof_a-funlink.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-fat_string.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-run_process.$(OBJEXT) \ +- o/lib_libbase_gcl_gprof_a-nfunlink.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-usig.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-usig2.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-utils.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-makefun.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-sockets.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-gmp_wrappers.$(OBJEXT) \ +- o/lib_libbase_gcl_gprof_a-clxsocket.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-nsocket.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-prelink.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-sfasl.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-msbrk.$(OBJEXT) \ +- o/lib_libbase_gcl_gprof_a-bcmp.$(OBJEXT) \ +- o/lib_libbase_gcl_gprof_a-bcopy.$(OBJEXT) \ +- o/lib_libbase_gcl_gprof_a-bzero.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT) +@@ -499,13 +488,12 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + gcl-tk/$(DEPDIR)/gcltkaux-tkAppInit.Po \ + gcl-tk/$(DEPDIR)/gcltkaux-tkMain.Po o/$(DEPDIR)/alloc.Po \ + o/$(DEPDIR)/array.Po o/$(DEPDIR)/assignment.Po \ +- o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bcmp.Po o/$(DEPDIR)/bcopy.Po \ +- o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po o/$(DEPDIR)/bind.Po \ +- o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \ +- o/$(DEPDIR)/bzero.Po o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ +- o/$(DEPDIR)/character.Po o/$(DEPDIR)/clxsocket.Po \ +- o/$(DEPDIR)/cmpaux.Po o/$(DEPDIR)/conditional.Po \ +- o/$(DEPDIR)/earith.Po o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \ ++ o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po \ ++ o/$(DEPDIR)/bind.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \ ++ o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ ++ o/$(DEPDIR)/character.Po o/$(DEPDIR)/cmpaux.Po \ ++ o/$(DEPDIR)/conditional.Po o/$(DEPDIR)/earith.Po \ ++ o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \ + o/$(DEPDIR)/fat_string.Po o/$(DEPDIR)/file.Po \ + o/$(DEPDIR)/format.Po o/$(DEPDIR)/frame.Po \ + o/$(DEPDIR)/funlink.Po o/$(DEPDIR)/gbc.Po \ +@@ -516,19 +504,14 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po \ +- o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po \ +- o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po \ +- o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po \ +- o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po \ +- o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po \ +@@ -555,7 +538,6 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po \ +- o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po \ +@@ -598,25 +580,25 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + o/$(DEPDIR)/macros.Po o/$(DEPDIR)/main.Po \ + o/$(DEPDIR)/makefun.Po o/$(DEPDIR)/mapfun.Po \ + o/$(DEPDIR)/msbrk.Po o/$(DEPDIR)/multival.Po \ +- o/$(DEPDIR)/new_init.Po o/$(DEPDIR)/nfunlink.Po \ +- o/$(DEPDIR)/nsocket.Po o/$(DEPDIR)/num_arith.Po \ +- o/$(DEPDIR)/num_co.Po o/$(DEPDIR)/num_comp.Po \ +- o/$(DEPDIR)/num_log.Po o/$(DEPDIR)/num_pred.Po \ +- o/$(DEPDIR)/num_rand.Po o/$(DEPDIR)/num_sfun.Po \ +- o/$(DEPDIR)/number.Po o/$(DEPDIR)/package.Po \ +- o/$(DEPDIR)/pathname.Po o/$(DEPDIR)/predicate.Po \ +- o/$(DEPDIR)/prelink.Po o/$(DEPDIR)/print.Po \ +- o/$(DEPDIR)/prog.Po o/$(DEPDIR)/qfv.Po o/$(DEPDIR)/read.Po \ +- o/$(DEPDIR)/reference.Po o/$(DEPDIR)/regexpr.Po \ +- o/$(DEPDIR)/run_process.Po o/$(DEPDIR)/sequence.Po \ +- o/$(DEPDIR)/sfasl.Po o/$(DEPDIR)/sockets.Po \ +- o/$(DEPDIR)/string.Po o/$(DEPDIR)/structure.Po \ +- o/$(DEPDIR)/symbol.Po o/$(DEPDIR)/toplevel.Po \ +- o/$(DEPDIR)/typespec.Po o/$(DEPDIR)/unixfasl.Po \ +- o/$(DEPDIR)/unixfsys.Po o/$(DEPDIR)/unixsave.Po \ +- o/$(DEPDIR)/unixsys.Po o/$(DEPDIR)/unixtime.Po \ +- o/$(DEPDIR)/user_init.Po o/$(DEPDIR)/user_match.Po \ +- o/$(DEPDIR)/usig.Po o/$(DEPDIR)/usig2.Po o/$(DEPDIR)/utils.Po \ ++ o/$(DEPDIR)/new_init.Po o/$(DEPDIR)/nsocket.Po \ ++ o/$(DEPDIR)/num_arith.Po o/$(DEPDIR)/num_co.Po \ ++ o/$(DEPDIR)/num_comp.Po o/$(DEPDIR)/num_log.Po \ ++ o/$(DEPDIR)/num_pred.Po o/$(DEPDIR)/num_rand.Po \ ++ o/$(DEPDIR)/num_sfun.Po o/$(DEPDIR)/number.Po \ ++ o/$(DEPDIR)/package.Po o/$(DEPDIR)/pathname.Po \ ++ o/$(DEPDIR)/predicate.Po o/$(DEPDIR)/prelink.Po \ ++ o/$(DEPDIR)/print.Po o/$(DEPDIR)/prog.Po o/$(DEPDIR)/qfv.Po \ ++ o/$(DEPDIR)/read.Po o/$(DEPDIR)/reference.Po \ ++ o/$(DEPDIR)/regexpr.Po o/$(DEPDIR)/run_process.Po \ ++ o/$(DEPDIR)/sequence.Po o/$(DEPDIR)/sfasl.Po \ ++ o/$(DEPDIR)/sockets.Po o/$(DEPDIR)/string.Po \ ++ o/$(DEPDIR)/structure.Po o/$(DEPDIR)/symbol.Po \ ++ o/$(DEPDIR)/toplevel.Po o/$(DEPDIR)/typespec.Po \ ++ o/$(DEPDIR)/unixfasl.Po o/$(DEPDIR)/unixfsys.Po \ ++ o/$(DEPDIR)/unixsave.Po o/$(DEPDIR)/unixsys.Po \ ++ o/$(DEPDIR)/unixtime.Po o/$(DEPDIR)/user_init.Po \ ++ o/$(DEPDIR)/user_match.Po o/$(DEPDIR)/usig.Po \ ++ o/$(DEPDIR)/usig2.Po o/$(DEPDIR)/utils.Po \ + xgcl-2/$(DEPDIR)/Events.Po xgcl-2/$(DEPDIR)/XStruct-2.Po \ + xgcl-2/$(DEPDIR)/XStruct-4.Po xgcl-2/$(DEPDIR)/Xutil-2.Po \ + xgcl-2/$(DEPDIR)/general-c.Po \ +@@ -872,6 +854,7 @@ PRELINK_CHECK = @PRELINK_CHECK@ + RANLIB = @RANLIB@ + RL_LIB = @RL_LIB@ + RL_OBJS = @RL_OBJS@ ++SEGMENT_ALIGNMENT_BITS = @SEGMENT_ALIGNMENT_BITS@ + SET_MAKE = @SET_MAKE@ + SHELL = @SHELL@ + STRIP = @STRIP@ +@@ -879,6 +862,7 @@ TCLSH = @TCLSH@ + TCL_INCLUDE = @TCL_INCLUDE@ + TCL_LIBRARY = @TCL_LIBRARY@ + TCL_LIB_SPEC = @TCL_LIB_SPEC@ ++TEXT_BASE = @TEXT_BASE@ + TK_CONFIG_PREFIX = @TK_CONFIG_PREFIX@ + TK_INCLUDE = @TK_INCLUDE@ + TK_LIBRARY = @TK_LIBRARY@ +@@ -1057,16 +1041,18 @@ ARCHT_H = h/elf32_armhf_reloc.h h/elf32_ + h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h h/solaris-i386.h + + BUILT_H = h/new_decl.h o/boot.h h/cmpinclude.h +-C_SRC = o/typespec.c o/alloc.c o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\ ++C_SRC = o/typespec.c o/alloc.c o/gbc.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c o/frame.c\ + o/predicate.c o/reference.c o/assignment.c o/bind.c o/let.c o/conditional.c o/block.c o/iteration.c\ + o/prog.c o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c o/num_pred.c o/num_comp.c\ + o/num_arith.c o/num_sfun.c o/num_co.c o/num_log.c o/num_rand.c o/earith.c\ + o/array.c o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c\ + o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c o/fat_string.c\ +- o/run_process.c o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\ +- o/clxsocket.c o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \ +- o/bcmp.c o/bcopy.c o/bzero.c o/user_init.c o/user_match.c o/mapfun.c ++ o/run_process.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\ ++ o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \ ++ o/user_init.c o/user_match.c o/mapfun.c + ++# o/bitop.c o/nfunlink.c o/clxsocket.c ++# o/bcmp.c o/bcopy.c o/bzero.c + D_SRC = o/character.d o/file.d o/gcl_readline.d o/hash.d o/list.d o/package.d o/pathname.d o/print.d\ + o/read.d o/sequence.d o/string.d o/symbol.d + +@@ -1339,7 +1325,6 @@ o/$(DEPDIR)/$(am__dirstamp): + o/typespec.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/alloc.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/gbc.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +-o/bitop.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/main.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/eval.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/macros.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +@@ -1384,7 +1369,6 @@ o/unixsave.$(OBJEXT): o/$(am__dirstamp) + o/funlink.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/fat_string.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/run_process.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +-o/nfunlink.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/usig.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/usig2.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/utils.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +@@ -1392,14 +1376,10 @@ o/makefun.$(OBJEXT): o/$(am__dirstamp) o + o/sockets.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/gmp_wrappers.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) +-o/clxsocket.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/nsocket.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/prelink.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/sfasl.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/msbrk.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +-o/bcmp.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +-o/bcopy.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +-o/bzero.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/user_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/user_match.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/mapfun.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +@@ -1433,8 +1413,6 @@ o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) +-o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT): o/$(am__dirstamp) \ +- o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-main.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-eval.$(OBJEXT): o/$(am__dirstamp) \ +@@ -1523,8 +1501,6 @@ o/lib_libbase_gcl_gprof_a-fat_string.$(O + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-run_process.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) +-o/lib_libbase_gcl_gprof_a-nfunlink.$(OBJEXT): o/$(am__dirstamp) \ +- o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-usig.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-usig2.$(OBJEXT): o/$(am__dirstamp) \ +@@ -1537,8 +1513,6 @@ o/lib_libbase_gcl_gprof_a-sockets.$(OBJE + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-gmp_wrappers.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) +-o/lib_libbase_gcl_gprof_a-clxsocket.$(OBJEXT): o/$(am__dirstamp) \ +- o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-nsocket.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-prelink.$(OBJEXT): o/$(am__dirstamp) \ +@@ -1547,12 +1521,6 @@ o/lib_libbase_gcl_gprof_a-sfasl.$(OBJEXT + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-msbrk.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) +-o/lib_libbase_gcl_gprof_a-bcmp.$(OBJEXT): o/$(am__dirstamp) \ +- o/$(DEPDIR)/$(am__dirstamp) +-o/lib_libbase_gcl_gprof_a-bcopy.$(OBJEXT): o/$(am__dirstamp) \ +- o/$(DEPDIR)/$(am__dirstamp) +-o/lib_libbase_gcl_gprof_a-bzero.$(OBJEXT): o/$(am__dirstamp) \ +- o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT): o/$(am__dirstamp) \ +@@ -1763,19 +1731,14 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/array.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/assignment.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/backq.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bcmp.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bcopy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bds.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/big.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bind.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bitop.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/block.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/boot.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bzero.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/catch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cfun.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/character.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/clxsocket.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cmpaux.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/conditional.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/earith.Po@am__quote@ # am--include-marker +@@ -1798,19 +1761,14 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po@am__quote@ # am--include-marker +@@ -1837,7 +1795,6 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po@am__quote@ # am--include-marker +@@ -1885,7 +1842,6 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/msbrk.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/multival.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/new_init.Po@am__quote@ # am--include-marker +-@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/nfunlink.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/nsocket.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/num_arith.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/num_co.Po@am__quote@ # am--include-marker +@@ -1999,20 +1955,6 @@ o/lib_libbase_gcl_gprof_a-gbc.obj: o/gbc + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-gbc.obj `if test -f 'o/gbc.c'; then $(CYGPATH_W) 'o/gbc.c'; else $(CYGPATH_W) '$(srcdir)/o/gbc.c'; fi` + +-o/lib_libbase_gcl_gprof_a-bitop.o: o/bitop.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bitop.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo -c -o o/lib_libbase_gcl_gprof_a-bitop.o `test -f 'o/bitop.c' || echo '$(srcdir)/'`o/bitop.c +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bitop.c' object='o/lib_libbase_gcl_gprof_a-bitop.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bitop.o `test -f 'o/bitop.c' || echo '$(srcdir)/'`o/bitop.c +- +-o/lib_libbase_gcl_gprof_a-bitop.obj: o/bitop.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bitop.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo -c -o o/lib_libbase_gcl_gprof_a-bitop.obj `if test -f 'o/bitop.c'; then $(CYGPATH_W) 'o/bitop.c'; else $(CYGPATH_W) '$(srcdir)/o/bitop.c'; fi` +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bitop.c' object='o/lib_libbase_gcl_gprof_a-bitop.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bitop.obj `if test -f 'o/bitop.c'; then $(CYGPATH_W) 'o/bitop.c'; else $(CYGPATH_W) '$(srcdir)/o/bitop.c'; fi` +- + o/lib_libbase_gcl_gprof_a-main.o: o/main.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-main.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-main.Tpo -c -o o/lib_libbase_gcl_gprof_a-main.o `test -f 'o/main.c' || echo '$(srcdir)/'`o/main.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-main.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-main.Po +@@ -2629,20 +2571,6 @@ o/lib_libbase_gcl_gprof_a-run_process.ob + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-run_process.obj `if test -f 'o/run_process.c'; then $(CYGPATH_W) 'o/run_process.c'; else $(CYGPATH_W) '$(srcdir)/o/run_process.c'; fi` + +-o/lib_libbase_gcl_gprof_a-nfunlink.o: o/nfunlink.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-nfunlink.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo -c -o o/lib_libbase_gcl_gprof_a-nfunlink.o `test -f 'o/nfunlink.c' || echo '$(srcdir)/'`o/nfunlink.c +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/nfunlink.c' object='o/lib_libbase_gcl_gprof_a-nfunlink.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-nfunlink.o `test -f 'o/nfunlink.c' || echo '$(srcdir)/'`o/nfunlink.c +- +-o/lib_libbase_gcl_gprof_a-nfunlink.obj: o/nfunlink.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-nfunlink.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo -c -o o/lib_libbase_gcl_gprof_a-nfunlink.obj `if test -f 'o/nfunlink.c'; then $(CYGPATH_W) 'o/nfunlink.c'; else $(CYGPATH_W) '$(srcdir)/o/nfunlink.c'; fi` +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/nfunlink.c' object='o/lib_libbase_gcl_gprof_a-nfunlink.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-nfunlink.obj `if test -f 'o/nfunlink.c'; then $(CYGPATH_W) 'o/nfunlink.c'; else $(CYGPATH_W) '$(srcdir)/o/nfunlink.c'; fi` +- + o/lib_libbase_gcl_gprof_a-usig.o: o/usig.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-usig.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-usig.Tpo -c -o o/lib_libbase_gcl_gprof_a-usig.o `test -f 'o/usig.c' || echo '$(srcdir)/'`o/usig.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-usig.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-usig.Po +@@ -2727,20 +2655,6 @@ o/lib_libbase_gcl_gprof_a-gmp_wrappers.o + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-gmp_wrappers.obj `if test -f 'o/gmp_wrappers.c'; then $(CYGPATH_W) 'o/gmp_wrappers.c'; else $(CYGPATH_W) '$(srcdir)/o/gmp_wrappers.c'; fi` + +-o/lib_libbase_gcl_gprof_a-clxsocket.o: o/clxsocket.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-clxsocket.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo -c -o o/lib_libbase_gcl_gprof_a-clxsocket.o `test -f 'o/clxsocket.c' || echo '$(srcdir)/'`o/clxsocket.c +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/clxsocket.c' object='o/lib_libbase_gcl_gprof_a-clxsocket.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-clxsocket.o `test -f 'o/clxsocket.c' || echo '$(srcdir)/'`o/clxsocket.c +- +-o/lib_libbase_gcl_gprof_a-clxsocket.obj: o/clxsocket.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-clxsocket.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo -c -o o/lib_libbase_gcl_gprof_a-clxsocket.obj `if test -f 'o/clxsocket.c'; then $(CYGPATH_W) 'o/clxsocket.c'; else $(CYGPATH_W) '$(srcdir)/o/clxsocket.c'; fi` +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/clxsocket.c' object='o/lib_libbase_gcl_gprof_a-clxsocket.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-clxsocket.obj `if test -f 'o/clxsocket.c'; then $(CYGPATH_W) 'o/clxsocket.c'; else $(CYGPATH_W) '$(srcdir)/o/clxsocket.c'; fi` +- + o/lib_libbase_gcl_gprof_a-nsocket.o: o/nsocket.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-nsocket.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Tpo -c -o o/lib_libbase_gcl_gprof_a-nsocket.o `test -f 'o/nsocket.c' || echo '$(srcdir)/'`o/nsocket.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po +@@ -2797,48 +2711,6 @@ o/lib_libbase_gcl_gprof_a-msbrk.obj: o/m + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-msbrk.obj `if test -f 'o/msbrk.c'; then $(CYGPATH_W) 'o/msbrk.c'; else $(CYGPATH_W) '$(srcdir)/o/msbrk.c'; fi` + +-o/lib_libbase_gcl_gprof_a-bcmp.o: o/bcmp.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcmp.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcmp.o `test -f 'o/bcmp.c' || echo '$(srcdir)/'`o/bcmp.c +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bcmp.c' object='o/lib_libbase_gcl_gprof_a-bcmp.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcmp.o `test -f 'o/bcmp.c' || echo '$(srcdir)/'`o/bcmp.c +- +-o/lib_libbase_gcl_gprof_a-bcmp.obj: o/bcmp.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcmp.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcmp.obj `if test -f 'o/bcmp.c'; then $(CYGPATH_W) 'o/bcmp.c'; else $(CYGPATH_W) '$(srcdir)/o/bcmp.c'; fi` +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bcmp.c' object='o/lib_libbase_gcl_gprof_a-bcmp.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcmp.obj `if test -f 'o/bcmp.c'; then $(CYGPATH_W) 'o/bcmp.c'; else $(CYGPATH_W) '$(srcdir)/o/bcmp.c'; fi` +- +-o/lib_libbase_gcl_gprof_a-bcopy.o: o/bcopy.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcopy.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcopy.o `test -f 'o/bcopy.c' || echo '$(srcdir)/'`o/bcopy.c +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bcopy.c' object='o/lib_libbase_gcl_gprof_a-bcopy.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcopy.o `test -f 'o/bcopy.c' || echo '$(srcdir)/'`o/bcopy.c +- +-o/lib_libbase_gcl_gprof_a-bcopy.obj: o/bcopy.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bcopy.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo -c -o o/lib_libbase_gcl_gprof_a-bcopy.obj `if test -f 'o/bcopy.c'; then $(CYGPATH_W) 'o/bcopy.c'; else $(CYGPATH_W) '$(srcdir)/o/bcopy.c'; fi` +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bcopy.c' object='o/lib_libbase_gcl_gprof_a-bcopy.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bcopy.obj `if test -f 'o/bcopy.c'; then $(CYGPATH_W) 'o/bcopy.c'; else $(CYGPATH_W) '$(srcdir)/o/bcopy.c'; fi` +- +-o/lib_libbase_gcl_gprof_a-bzero.o: o/bzero.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bzero.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo -c -o o/lib_libbase_gcl_gprof_a-bzero.o `test -f 'o/bzero.c' || echo '$(srcdir)/'`o/bzero.c +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bzero.c' object='o/lib_libbase_gcl_gprof_a-bzero.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bzero.o `test -f 'o/bzero.c' || echo '$(srcdir)/'`o/bzero.c +- +-o/lib_libbase_gcl_gprof_a-bzero.obj: o/bzero.c +-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-bzero.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo -c -o o/lib_libbase_gcl_gprof_a-bzero.obj `if test -f 'o/bzero.c'; then $(CYGPATH_W) 'o/bzero.c'; else $(CYGPATH_W) '$(srcdir)/o/bzero.c'; fi` +-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/bzero.c' object='o/lib_libbase_gcl_gprof_a-bzero.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-bzero.obj `if test -f 'o/bzero.c'; then $(CYGPATH_W) 'o/bzero.c'; else $(CYGPATH_W) '$(srcdir)/o/bzero.c'; fi` +- + o/lib_libbase_gcl_gprof_a-user_init.o: o/user_init.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-user_init.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-user_init.Tpo -c -o o/lib_libbase_gcl_gprof_a-user_init.o `test -f 'o/user_init.c' || echo '$(srcdir)/'`o/user_init.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-user_init.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-user_init.Po +@@ -4122,19 +3994,14 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/array.Po + -rm -f o/$(DEPDIR)/assignment.Po + -rm -f o/$(DEPDIR)/backq.Po +- -rm -f o/$(DEPDIR)/bcmp.Po +- -rm -f o/$(DEPDIR)/bcopy.Po + -rm -f o/$(DEPDIR)/bds.Po + -rm -f o/$(DEPDIR)/big.Po + -rm -f o/$(DEPDIR)/bind.Po +- -rm -f o/$(DEPDIR)/bitop.Po + -rm -f o/$(DEPDIR)/block.Po + -rm -f o/$(DEPDIR)/boot.Po +- -rm -f o/$(DEPDIR)/bzero.Po + -rm -f o/$(DEPDIR)/catch.Po + -rm -f o/$(DEPDIR)/cfun.Po + -rm -f o/$(DEPDIR)/character.Po +- -rm -f o/$(DEPDIR)/clxsocket.Po + -rm -f o/$(DEPDIR)/cmpaux.Po + -rm -f o/$(DEPDIR)/conditional.Po + -rm -f o/$(DEPDIR)/earith.Po +@@ -4157,19 +4024,14 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po +@@ -4196,7 +4058,6 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po +@@ -4244,7 +4105,6 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/msbrk.Po + -rm -f o/$(DEPDIR)/multival.Po + -rm -f o/$(DEPDIR)/new_init.Po +- -rm -f o/$(DEPDIR)/nfunlink.Po + -rm -f o/$(DEPDIR)/nsocket.Po + -rm -f o/$(DEPDIR)/num_arith.Po + -rm -f o/$(DEPDIR)/num_co.Po +@@ -4446,19 +4306,14 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/array.Po + -rm -f o/$(DEPDIR)/assignment.Po + -rm -f o/$(DEPDIR)/backq.Po +- -rm -f o/$(DEPDIR)/bcmp.Po +- -rm -f o/$(DEPDIR)/bcopy.Po + -rm -f o/$(DEPDIR)/bds.Po + -rm -f o/$(DEPDIR)/big.Po + -rm -f o/$(DEPDIR)/bind.Po +- -rm -f o/$(DEPDIR)/bitop.Po + -rm -f o/$(DEPDIR)/block.Po + -rm -f o/$(DEPDIR)/boot.Po +- -rm -f o/$(DEPDIR)/bzero.Po + -rm -f o/$(DEPDIR)/catch.Po + -rm -f o/$(DEPDIR)/cfun.Po + -rm -f o/$(DEPDIR)/character.Po +- -rm -f o/$(DEPDIR)/clxsocket.Po + -rm -f o/$(DEPDIR)/cmpaux.Po + -rm -f o/$(DEPDIR)/conditional.Po + -rm -f o/$(DEPDIR)/earith.Po +@@ -4481,19 +4336,14 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-array.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-assignment.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-backq.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcmp.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bcopy.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bds.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-big.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-character.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-clxsocket.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cmpaux.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-conditional.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-earith.Po +@@ -4520,7 +4370,6 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-msbrk.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-multival.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-new_init.Po +- -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nfunlink.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-nsocket.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_arith.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-num_co.Po +@@ -4568,7 +4417,6 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/msbrk.Po + -rm -f o/$(DEPDIR)/multival.Po + -rm -f o/$(DEPDIR)/new_init.Po +- -rm -f o/$(DEPDIR)/nfunlink.Po + -rm -f o/$(DEPDIR)/nsocket.Po + -rm -f o/$(DEPDIR)/num_arith.Po + -rm -f o/$(DEPDIR)/num_co.Po +@@ -4716,13 +4564,19 @@ unixport/saved_%: | unixport/raw_% unixp + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ +- GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ ++ GCL_LSPSYSDIR=../$(srcdir)/unixport/ \ + ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ +- rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue ++ rm -f ../unixport/gcl_cmpnopt.lsp + rm -rf sb_$* + + unixport/raw_%: unixport/lib%.a $(FF) $(LF) + $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro ++ ! which otool >/dev/null || \ ++ ! otool -l $@ |grep -q LC_DYLD_CHAINED_FIXUPS || \ ++ ( echo Relinking raw image for mac arm && \ ++ $(CC) \ ++ $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \ ++ $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS)) + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ + unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp +@@ -4737,8 +4591,8 @@ $(addprefix unixport/lib,$(addsuffix .a, + unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o + $(addprefix unixport/lib,$(addsuffix .a,gcl_gprof ansi_gcl_gprof)): \ + unixport/lib%.a:lib/libbase_gcl_gprof.a unixport/sys_%.o +- +-.POSIX: # parallel job ordering ++$(addprefix gcl0/,$(L0_OBJS)): | $(addprefix gcl0/,$(M0_OBJS)) ++$(addprefix gcl0/,$(M0_OBJS)): | $(addprefix gcl0/,$(E0_OBJS)) + unixport/libgcl0.a: $(addprefix gcl0/,$(E0_OBJS) $(M0_OBJS) $(L0_OBJS)) + + $(addprefix unixport/lib,$(addsuffix .a,gcl1 gcl2 gcl3 gcl)):\ +@@ -4776,6 +4630,7 @@ unixport/pcl_gcl: | unixport/saved_mod_ + unixport/ansi_gcl: | unixport/saved_pcl_gcl + $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | % + echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|) ++ + $(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | % + ln -snf $$(basename $(word 2,$|)) $@ + +@@ -4809,8 +4664,8 @@ $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o + $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp + gcl0/%.o: | unixport/gcl0 + rm -f $(@D)/$*.done +- $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ +- [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ ++ $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ ++ [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ + ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link + + $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp +--- /dev/null ++++ gcl27-2.7.1/bin/mac_arm_relink +@@ -0,0 +1,37 @@ ++#!/usr/bin/awk -f ++ ++function from_hex (hh) { ++ jj=0; ++ if (substr(hh,1,2)=="0x") ++ hh=substr(hh,3,length(hh)); ++ for (ii=1;ii<=length(hh);ii++) ++ jj=jj*16+A[substr(hh,ii,1)]; ++ return jj; ++} ++function to_hex(jj) { ++ ss=""; ++ for (;jj;jj=kk) { ++ kk=int(jj/16); ++ ss=substr(z,jj-kk*16+1,1) ss; ++ } ++ return ss; ++} ++ ++ ++BEGIN{z="0123456789abcdef";for (i=1;i<=length(z);i++) A[substr(z,i,1)]=i-1;} ++/^ *cmd / {c=$2;next} ++/^ *segname/ {n=$2;next} ++/^ *vmsize/ {if (c=="LC_SEGMENT_64") A[n]=$2;} ++END { ++ p=1; ++ for (i=0;ifun.fun_argd && + _n>=_f->fun.fun_minarg && +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp +@@ -132,7 +132,7 @@ + (ms + "({fixnum _v=(fixnum)#v;object _z,_f=(#0),_l=(#1),_ll=_l; + object _x4=Cnil,_x3=Cnil,_x2=Cnil,_x1=Cnil,_x0=Cnil; +- char _m=(#n-2),_n=Rset && !_f->fun.fun_argd ? _f->fun.fun_minarg-_m : -(MAX_ARGS+1); ++ char _m=(#n-2);volatile char _n=Rset && !_f->fun.fun_argd ? _f->fun.fun_minarg-_m : -(MAX_ARGS+1); + char _reg=_f->fun.fun_minarg==_f->fun.fun_maxarg; + fcall.fun=_f;fcall.valp=_v;fcall.argd=-(#n-1); + switch (_n) { +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptag.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptag.lsp +@@ -62,7 +62,8 @@ + (unless (tag-p form) + (mapc (lambda (x) + (when (var-p x) +- (incf (var-register x) (the fixnum *reg-amount*)))) ++ (unless (>= (var-register x) (ash (the fixnum *reg-amount*) 2)) ++ (incf (var-register x) (the fixnum *reg-amount*))))) + (info-ref (cadr form))))) + + (defun intersection-p (l1 l2) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptype.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptype.lsp +@@ -502,6 +502,18 @@ + (defun range-decomp (tp) + (mapcan (lambda (x &aux (f (pop x))(z (type-and tp x))) (when z (list (cons f z)))) +cmp-range-types+)) + ++(defun allocate-basic-stream-propagator (f tp) ++ (declare (ignore f)) ++ (reduce ++ (lambda (y x) ++ (if (type-and (car x) tp) ++ (type-or1 (cadr x) y) ++ y)) ++ '#.(mapcar (lambda (x) (list (object-tp x) (cmp-norm-tp (type-of (allocate-basic-stream x))))) ++ (let ((i -1)) ++ (mapl (lambda (x) (setf (car x) (incf i))) (make-list (si::btp-count #tstream))))) ++ :initial-value nil)) ++(si::putprop 'allocate-basic-stream 'allocate-basic-stream-propagator 'type-propagator) + + (dolist (l '(si::number-plus si::number-minus si::number-times + - * exp tanh sinh asinh)) + (si::putprop l 'super-range 'type-propagator)) +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -699,6 +699,8 @@ GMP + HAVE_MALLOC_ZONE_MEMALIGN + AMM_GPROF_FALSE + AMM_GPROF_TRUE ++SEGMENT_ALIGNMENT_BITS ++TEXT_BASE + GCL_CC + CPP + RANLIB +@@ -827,6 +829,11 @@ enable_debug + enable_static + enable_pic + enable_dependency_tracking ++enable_text_base ++enable_segment_alignment_bits ++enable_initial_heap_vmsize ++enable_saved_pre_image_span ++enable_saved_image_span + enable_gprof + with_x + enable_xdr +@@ -1483,7 +1490,7 @@ Optional Features: + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") +-put bootstrap code in shared library to be discarded ++ --enable-libtool will put bootstrap code in shared library to be discarded + --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs + --enable-widecons will use a three word cons with simplified typing + --enable-safecdr will protect cdr from immfix and speed up type processing +@@ -1493,7 +1500,7 @@ put bootstrap code in shared library to + --enable-bdssize=XXXX will compile in a binding stack of size XXX + --enable-ihssize=XXXX will compile in a invocation history stack of size XXX + --enable-frssize=XXXX will compile in a frame stack of size XXX +---enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info ++ --enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info + --enable-xgcl=yes will compile in support for XGCL + --enable-debug builds gcl with -g in CFLAGS to enable running under gdb + --enable-static will link your GCL against static as opposed to shared system libraries +@@ -1502,11 +1509,16 @@ put bootstrap code in shared library to + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build ++ --enable-text_base=0x.... set base address for __TEXT ++ --enable-segment_alignment_bits=... set bit alignment for mach-o image segments ++ --enable-initial_heap_vmsize=0x.... set heap size for raw images ++ --enable-saved_pre_image_span=0x.... set address span for saved pre images ++ --enable-saved_image_span=0x.... set address span for saved images + --enable-gprof builds gcl with -pg in CFLAGS to enable profiling with gprof + --enable-xdr=yes will compile in support for XDR + --enable-immfix will enable an immediate fixnum table above the C stack + --enable-fastimmfix=XXXX will reject low immediate fixnums unless 2^XXX can be attained +- --enable-min_pagewidth=xxx sets 1<&1 | fgrep ming > /dev/null ; +@@ -7272,7 +7285,7 @@ case $use in + 386-macosx) + # assert_arg_to_cflags -Wno-error=implicit-function-declaration + add_arg_to_cflags -Wno-incomplete-setjmp-declaration +- assert_arg_to_ldflags -Wl,-no_pie ++ assert_arg_to_ldflags -Wl,-no_pie #FIXME remove + if test "$build_cpu" = "x86_64" ; then + assert_arg_to_cflags -m64 + assert_arg_to_ldflags -m64 +@@ -7282,9 +7295,76 @@ case $use in + assert_arg_to_ldflags -m32 + assert_arg_to_ldflags -Wl,-headerpad,56 + fi;; ++ aarch64-macosx) ++# LISP_CFLAGS="$LISP_CFLAGS -mcmodel=large" #fixme 26bit trampolines ++ # Check whether --enable-text_base was given. ++if test ${enable_text_base+y} ++then : ++ enableval=$enable_text_base; TEXT_BASE=$enableval ++else case e in #( ++ e) TEXT_BASE=0x10000000000 ;; ++esac ++fi ++ ++ ++ # Check whether --enable-segment_alignment_bits was given. ++if test ${enable_segment_alignment_bits+y} ++then : ++ enableval=$enable_segment_alignment_bits; SEGMENT_ALIGNMENT_BITS=$enableval ++else case e in #( ++ e) SEGMENT_ALIGNMENT_BITS=14 ;; ++esac ++fi ++ ++ ++ ;; + FreeBSD) assert_arg_to_ldflags -Z;; + esac + ++case $use in ++ *macosx*) ++ # Check whether --enable-initial_heap_vmsize was given. ++if test ${enable_initial_heap_vmsize+y} ++then : ++ enableval=$enable_initial_heap_vmsize; INITIAL_HEAP_VMSIZE=$enableval ++else case e in #( ++ e) INITIAL_HEAP_VMSIZE=0x70000000 ;; ++esac ++fi ++ ++ ++printf "%s\n" "#define INITIAL_HEAP_VMSIZE $INITIAL_HEAP_VMSIZE" >>confdefs.h ++ ++ ++ #Support libboot option ++ # Check whether --enable-saved_pre_image_span was given. ++if test ${enable_saved_pre_image_span+y} ++then : ++ enableval=$enable_saved_pre_image_span; SAVED_PRE_IMAGE_SPAN=$enableval ++else case e in #( ++ e) SAVED_PRE_IMAGE_SPAN=0x100000000 ;; ++esac ++fi ++ ++ ++printf "%s\n" "#define SAVED_PRE_IMAGE_SPAN $SAVED_PRE_IMAGE_SPAN" >>confdefs.h ++ ++ ++ # Check whether --enable-saved_image_span was given. ++if test ${enable_saved_image_span+y} ++then : ++ enableval=$enable_saved_image_span; SAVED_IMAGE_SPAN=$enableval ++else case e in #( ++ e) SAVED_IMAGE_SPAN=0x2000000000 ;; ++esac ++fi ++ ++ ++printf "%s\n" "#define SAVED_IMAGE_SPAN $SAVED_IMAGE_SPAN" >>confdefs.h ++ ++ ;; ++esac ++ + if test "$enable_static" = "yes" ; then + assert_arg_to_ldflags -static + assert_arg_to_ldflags -Wl,-zmuldefs +@@ -11829,6 +11909,7 @@ LI_GITTAG="$GIT_TAG" + + LI_RELEASE="$RELEASE" + ++#LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS $LISP_CFLAGS" | sed 's,-pg\b,,g'`\"" + LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS" | sed 's,-pg\b,,g'`\"" + + LI_DFP="\"$GPL_FLAG\"" +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -60,6 +60,7 @@ case $canonical in + powerpc*linux*) use=powerpc-linux;; + powerpc-*-darwin*) use=powerpc-macosx;; + *86*darwin*) use=386-macosx;; ++ *aarch64*darwin*) use=aarch64-macosx;; + i*mingw*|i*msys*) use=mingw;; + *cygwin*) + if $CC -v 2>&1 | fgrep ming > /dev/null ; +@@ -71,7 +72,7 @@ case $canonical in + i?86-pc-solaris*) use=solaris-i386;; + esac + +-AC_ARG_ENABLE([libboot],[put bootstrap code in shared library to be discarded], ++AC_ARG_ENABLE([libboot],[ --enable-libtool will put bootstrap code in shared library to be discarded], + [libboot=$enableval],[libboot="yes"]) + + if test "$use" = "gnuwin95" ; then +@@ -132,7 +133,7 @@ AC_ARG_ENABLE([ihssize],[ --enable-ihss + AC_ARG_ENABLE([frssize],[ --enable-frssize=XXXX will compile in a frame stack of size XXX], + [AC_DEFINE_UNQUOTED(FRSSIZE,$enableval,[frame stack size])]) + +-AC_ARG_ENABLE([infodir],[--enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info], ++AC_ARG_ENABLE([infodir],[ --enable-infodir=XXXX will force the use of a INFO_DIR=XXXXX as place to look for info], + [INFO_DIR=$enableval],[INFO_DIR=$prefix/share/info]) + INFO_DIR=`eval echo $INFO_DIR/` + +@@ -329,7 +330,7 @@ case $use in + 386-macosx) + # assert_arg_to_cflags -Wno-error=implicit-function-declaration + add_arg_to_cflags -Wno-incomplete-setjmp-declaration +- assert_arg_to_ldflags -Wl,-no_pie ++ assert_arg_to_ldflags -Wl,-no_pie #FIXME remove + if test "$build_cpu" = "x86_64" ; then + assert_arg_to_cflags -m64 + assert_arg_to_ldflags -m64 +@@ -339,9 +340,35 @@ case $use in + assert_arg_to_ldflags -m32 + assert_arg_to_ldflags -Wl,-headerpad,56 + fi;; ++ aarch64-macosx) ++# LISP_CFLAGS="$LISP_CFLAGS -mcmodel=large" #fixme 26bit trampolines ++ AC_ARG_ENABLE([text_base],[ --enable-text_base=0x.... set base address for __TEXT], ++ [TEXT_BASE=$enableval],[TEXT_BASE=0x10000000000]) ++ AC_SUBST(TEXT_BASE) ++ AC_ARG_ENABLE([segment_alignment_bits],[ --enable-segment_alignment_bits=... set bit alignment for mach-o image segments], ++ [SEGMENT_ALIGNMENT_BITS=$enableval],[SEGMENT_ALIGNMENT_BITS=14]) ++ AC_SUBST(SEGMENT_ALIGNMENT_BITS) ++ ;; + FreeBSD) assert_arg_to_ldflags -Z;; + esac + ++case $use in ++ *macosx*) ++ AC_ARG_ENABLE([initial_heap_vmsize],[ --enable-initial_heap_vmsize=0x.... set heap size for raw images], ++ [INITIAL_HEAP_VMSIZE=$enableval],[INITIAL_HEAP_VMSIZE=0x70000000]) ++ AC_DEFINE_UNQUOTED(INITIAL_HEAP_VMSIZE,$INITIAL_HEAP_VMSIZE,[heap size for raw images]) ++ ++ #Support libboot option ++ AC_ARG_ENABLE([saved_pre_image_span],[ --enable-saved_pre_image_span=0x.... set address span for saved pre images], ++ [SAVED_PRE_IMAGE_SPAN=$enableval],[SAVED_PRE_IMAGE_SPAN=0x100000000]) ++ AC_DEFINE_UNQUOTED(SAVED_PRE_IMAGE_SPAN,$SAVED_PRE_IMAGE_SPAN,[address span for saved pre images]) ++ ++ AC_ARG_ENABLE([saved_image_span],[ --enable-saved_image_span=0x.... set address span for saved images], ++ [SAVED_IMAGE_SPAN=$enableval],[SAVED_IMAGE_SPAN=0x2000000000]) ++ AC_DEFINE_UNQUOTED(SAVED_IMAGE_SPAN,$SAVED_IMAGE_SPAN,[address span for saved images]) ++ ;; ++esac ++ + if test "$enable_static" = "yes" ; then + assert_arg_to_ldflags -static + assert_arg_to_ldflags -Wl,-zmuldefs +@@ -922,7 +949,7 @@ else + AC_MSG_RESULT([not found]) + fi + +-AC_ARG_ENABLE(min_pagewidth,[ --enable-min_pagewidth=xxx sets 1< ++*/ ++ ++/* For those who are using ACL2, please remember to enlarge your shell stack (ulimit -s 8192). */ ++ ++#include "bsd.h" ++ ++#define DARWIN ++ ++/* Mac OS X has its own executable file format (Mach-O). */ ++#undef HAVE_AOUT ++#undef HAVE_ELF ++ ++ ++/* Alternatively, we could use the global variable vm_page_size. */ ++/* #define PAGEWIDTH 12 */ ++ ++ ++#include /* to get sbrk defined */ ++ ++ ++/** (si::save-system "...") a.k.a. unexec implementation */ ++ ++/* The implementation of unexec for GCL is based on Andrew Choi's work for Emacs. ++ Previous pioneering implementation of unexec for Mac OS X by Steve Nygard. */ ++#define UNIXSAVE "unexmacosx.c" ++ ++#undef malloc ++#define malloc my_malloc ++ ++#undef free ++#define free my_free ++ ++#undef realloc ++#define realloc my_realloc ++ ++#undef valloc ++#define valloc my_valloc ++ ++#undef calloc ++#define calloc my_calloc ++ ++ ++/** Dynamic loading implementation */ ++ ++/* The sfasl{bfd,macosx,macho}.c files are included from sfasl.c. */ ++#ifdef HAVE_LIBBFD ++#define SEPARATE_SFASL_FILE "sfaslbfd.c" ++#else ++#define SPECIAL_RSYM "rsym_macosx.c" ++#define SEPARATE_SFASL_FILE "sfaslmacho.c" ++#endif ++ ++/* The file has non Mach-O stuff appended. We need to know where the Mach-O stuff ends. */ ++#include ++extern int seek_to_end_ofile (FILE *); ++#define SEEK_TO_END_OFILE(fp) seek_to_end_ofile(fp) ++ ++/** Stratified garbage collection implementation [ (si::sgc-on t) ] */ ++ ++/* Mac OS X has sigaction (this is needed in o/usig.c) */ ++#define HAVE_SIGACTION ++ ++/* Copied from {Net,Free,Open}BSD.h */ ++/* Modified according to Camm's instructions on April 15, 2004. */ ++#define HAVE_SIGPROCMASK ++ ++/* until the sgc/save problem can be fixed. 20050114 CM*/ ++/* #define SGC */ ++ ++#define MPROTECT_ACTION_FLAGS (SA_SIGINFO | SA_RESTART) ++ ++#define INSTALL_MPROTECT_HANDLER \ ++do { \ ++ static struct sigaction sact; \ ++ sigfillset (&(sact.sa_mask)); \ ++ sact.sa_flags = MPROTECT_ACTION_FLAGS; \ ++ sact.sa_sigaction = (void (*) ()) memprotect_handler; \ ++ sigaction (SIGBUS, &sact, 0); \ ++ sigaction (SIGSEGV, &sact, 0); \ ++} while (0); ++ ++#define GET_FAULT_ADDR(sig,code,sv,a) ((siginfo_t *)code)->si_addr ++ ++ ++/** Misc stuff */ ++ ++#define IEEEFLOAT ++ ++/* Mac OS X does not have _fileno as in linux.h. Nor does it have _cnt as in bsd.h. ++ Let's see what we can do with this declaration found in {Net,Free,Open}BSD.h. */ ++#undef LISTEN_FOR_INPUT ++#define LISTEN_FOR_INPUT(fp) \ ++do {int c=0; \ ++ if (((FILE *)fp)->_r <=0 && (c=0, ioctl(((FILE *)fp)->_file, FIONREAD, &c), c<=0)) \ ++ return(FALSE); \ ++} while (0) ++ ++#define GET_FULL_PATH_SELF(a_) \ ++do { \ ++uint32_t bufsize = 1024; \ ++static char buf [1024]; \ ++static char fub [1024]; \ ++if (_NSGetExecutablePath (buf, &bufsize) != 0) { \ ++ error ("_NSGetExecutablePath failed"); \ ++} \ ++if (realpath (buf, fub) == 0) { \ ++ error ("realpath failed"); \ ++} \ ++(a_) = fub; \ ++} while (0) ++ ++#define C_GC_OFFSET 4 ++#include ++#define RELOC_H "mach64_aarch64_reloc.h" ++ ++#define FPE_TCODE(x_) \ ++ ({ufixnum _x=(x_),_y=0; \ ++ switch(_x) { \ ++ case FPE_FLTINV: _y=FE_INVALID;break; \ ++ case FPE_FLTDIV: _y=FE_DIVBYZERO;break; \ ++ case FPE_FLTOVF: _y=FE_OVERFLOW;break; \ ++ case FPE_FLTUND: _y=FE_UNDERFLOW;break; \ ++ case FPE_FLTRES: _y=FE_INEXACT;break; \ ++ } \ ++ _y; \ ++ }) ++#define SF(a_) ((siginfo_t *)a_) ++#define FPE_CODE(i_,v_) make_fixnum(FPE_TCODE((fixnum)SF(i_)->si_code)) ++#define FPE_ADDR(i_,v_) make_fixnum((fixnum)SF(i_)->si_addr) ++#define FPE_CTXT(v_) Cnil ++ ++#define FPE_INIT Cnil ++ ++#include /*PATH_MAX MAXPATHLEN*/ ++#undef MIN ++#undef MAX ++ ++#undef sbrk ++#define sbrk msbrk ++#define INITIALIZE_BRK msbrk_init(); ++ ++#include ++#define CLEAR_CACHE sys_icache_invalidate(memory->cfd.cfd_start,memory->cfd.cfd_size) ++ ++#define W_X ++ ++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE") +--- gcl27-2.7.1.orig/h/arm-linux.h ++++ gcl27-2.7.1/h/arm-linux.h +@@ -8,3 +8,5 @@ + #define NEED_STACK_CHK_GUARD + + #define OUTPUT_MACH bfd_mach_arm_9 ++ ++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE") +--- gcl27-2.7.1.orig/h/armhf-linux.h ++++ gcl27-2.7.1/h/armhf-linux.h +@@ -8,3 +8,5 @@ + #define NEED_STACK_CHK_GUARD + + #define OUTPUT_MACH bfd_mach_arm_9 ++ ++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE") +--- /dev/null ++++ gcl27-2.7.1/h/disable_mac_aslr.h +@@ -0,0 +1,29 @@ ++#include ++#include ++#include ++#include ++#include ++ ++#ifndef POSIX_SPAWN_DISABLE_ASLR ++#define POSIX_SPAWN_DISABLE_ASLR 0x0100 ++#endif ++ ++void ++disable_aslr(int argc, char **argv, char **envp) { ++ ++ pid_t pid; ++ posix_spawnattr_t attr; ++ ++ if (!_dyld_get_image_vmaddr_slide(0)) { ++ return; ++ } ++ ++ posix_spawnattr_init(&attr); ++ posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETEXEC | POSIX_SPAWN_DISABLE_ASLR); ++ if (posix_spawn(&pid, argv[0], NULL, &attr, argv, envp)) { ++ perror("posix_spawn to disable ASLR failed"); ++ gcl_abort(); ++ } ++ posix_spawnattr_destroy(&attr); ++ ++} +--- gcl27-2.7.1.orig/h/gclincl.h.in ++++ gcl27-2.7.1/h/gclincl.h.in +@@ -222,6 +222,9 @@ + /* size of immediate fixnum address space */ + #undef IM_FIX_LIM + ++/* heap size for raw images */ ++#undef INITIAL_HEAP_VMSIZE ++ + /* symbol name mangling convention */ + #undef LEADING_UNDERSCORE + +@@ -297,6 +300,12 @@ + /* rl_readline_name returns type const char */ + #undef RL_READLINE_NAME_TYPE_CONST_CHAR + ++/* address span for saved images */ ++#undef SAVED_IMAGE_SPAN ++ ++/* address span for saved pre images */ ++#undef SAVED_PRE_IMAGE_SPAN ++ + /* The size of 'char', as computed by sizeof. */ + #undef SIZEOF_CHAR + +--- gcl27-2.7.1.orig/h/lu.h ++++ gcl27-2.7.1/h/lu.h +@@ -504,7 +504,7 @@ struct function { + struct cfdata { + + FRSTWRD(tt, +- cfw:LM(18), ++ cfd_nexp:LM(18), + cfd_prof:1 /* profiling */ + ); + +--- /dev/null ++++ gcl27-2.7.1/h/mach64_aarch64_reloc.h +@@ -0,0 +1,57 @@ ++#include ++ ++#define GOT_RELOC(ri) \ ++ ri->r_type==ARM64_RELOC_GOT_LOAD_PAGE21|| \ ++ ri->r_type==ARM64_RELOC_GOT_LOAD_PAGEOFF12|| \ ++ ri->r_type==ARM64_RELOC_BRANCH26 ++#define GOT_RELOC_EXTRA(ri) ri->r_type==ARM64_RELOC_BRANCH26 ? 2*sizeof(int)/sizeof(ul) : 0 ++ ++ case ARM64_RELOC_ADDEND: ++ addend=a; ++ break; ++ case ARM64_RELOC_BRANCH26: ++ addend=0; ++ if (labs(((long)(ri->r_pcrel ? a-(ul)q : a))/4)&(~MASK(25))) { ++ int tramp[]={0x58ffffd0, /*ldr 19bit pc relative x16*/ ++ 0xd61f0200};/*br x16*/ ++ got+=n1[ri->r_symbolnum].n_desc-1; ++ *got++=a; ++ memcpy(got,tramp,sizeof(tramp)); ++ a=(ul)got; ++ } ++ add_vals(q,MASK(26),((long)(ri->r_pcrel ? a-(ul)q : a))/4); ++ break; ++ case ARM64_RELOC_GOT_LOAD_PAGE21: ++ got+=n1[ri->r_symbolnum].n_desc-1; ++ *got=a; ++ a=(ul)got; ++ case ARM64_RELOC_PAGE21: ++ a+=addend; ++ addend=0; ++#define PG(x) ((x) & ~0xfff) ++ a=((long)(PG(a)-PG((ul)q))) / 0x1000; ++#undef PG ++ store_val(q,MASK(2) << 29, (a & 0x3) << 29); ++ store_val(q,MASK(19) << 5, (a & 0x1ffffc) << 3); ++ break; ++ case ARM64_RELOC_GOT_LOAD_PAGEOFF12: ++ got+=n1[ri->r_symbolnum].n_desc-1; ++ *got=a; ++ a=(ul)got; ++ case ARM64_RELOC_PAGEOFF12: ++ a+=addend; ++ addend=0; ++ a&=0xfff; ++ a>>=(((*q)>>29)&0x1)* /*not add/sub*/ ++ ((((*q)>>26)&0x1) ? /*simd*/ ++ ((((*q)>>22)&0x3) ? ++ (((*q)>>22)&0x3)+1 : (((*q)>>30)&0x1)) : ++ (((*q)>>30)&0x3)); /*gp*/ ++ store_val(q,MASK(12) << 10, a << 10); ++ break; ++ case ARM64_RELOC_UNSIGNED: ++ addend=0; ++ if (ri->r_extern || !ri->r_pcrel) { ++ add_valu(q,~0UL,ri->r_pcrel ? a-rel : a); ++ } ++ break; +--- gcl27-2.7.1.orig/h/riscv64-linux.h ++++ gcl27-2.7.1/h/riscv64-linux.h +@@ -11,3 +11,5 @@ + #define NEED_STACK_CHK_GUARD + + #define OUTPUT_MACH bfd_mach_riscv64 ++ ++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE") +--- gcl27-2.7.1.orig/info/control.texi ++++ gcl27-2.7.1/info/control.texi +@@ -260,7 +260,7 @@ Some of the substitutions are only valid + certain types of events; if they are used for other types of events + the value substituted is undefined. + +-@table @asis{} ++@table @asis + @item @b{%%} + Replaced with a single percent. + @item @b{|%#|} +@@ -515,7 +515,7 @@ tk-dialog \- Create modal dialog and wai + This procedure is part of the Tk script library. + Its arguments describe a dialog box: + +-@table @asis{} ++@table @asis + @item @i{window} + Name of top-level window to use for dialog. Any existing window + by this name is destroyed. +@@ -602,7 +602,7 @@ the focus. + + The @b{focus} command can take any of the following forms: + +-@table @asis{} ++@table @asis + @item @b{focus} + If invoked with no arguments, @b{focus} returns the path name of + the current focus window, or @b{none} if there is no focus window. +@@ -750,7 +750,7 @@ grab on a given display at once. + + The @b{grab} command can take any of the following forms: + +-@table @asis{} ++@table @asis + @item @b{grab }@r{?}@b{:global}@r{? }@i{window} + Same as @b{grab :set}, described below. + @item @b{grab :current }@r{?}@i{window}? +@@ -926,7 +926,7 @@ At any given time, the only menus availa + are those associated with the top-level window containing the + input focus. + Menu traversal is initiated by one of the following actions: +-@itemize @asis{} ++@itemize @asis + @item + [1] + If is typed, then the first menu button in the list for the +@@ -950,7 +950,7 @@ its first entry. + + Once a menu has been posted, the input focus is switched to that + menu and the following actions are possible: +-@itemize @asis{} ++@itemize @asis + @item + [1] + Typing or clicking mouse button 1 outside the menu button or +@@ -1039,7 +1039,7 @@ options; @i{priority}@r{ defaults to }@ + The @i{priority}@r{ arguments to the }@b{option} command are + normally specified symbolically using one of the following values: + +-@table @asis{} ++@table @asis + @item @b{widgetDefault} + Level 20. Used for default values hard-coded into widgets. + @item @b{startupFile} +@@ -1097,7 +1097,7 @@ the widget @b{.a.b.c}. Command-line swi + as long as the abbreviation is unambiguous. + + +-@table @asis{} ++@table @asis + @item @code{@b{:activebackground}} + @flushright + Name=@code{"@b{activeBackground}@r{"} Class=@code{"}@b{Foreground}"} +@@ -1111,7 +1111,7 @@ will cause some action to occur. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:activeborderwidth}} + @flushright + Name=@code{"@b{activeBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"} +@@ -1127,7 +1127,7 @@ than one element at a time (e.g. menus b + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:activeforeground}} + @flushright + Name=@code{"@b{activeForeground}@r{"} Class=@code{"}@b{Background}"} +@@ -1139,7 +1139,7 @@ See above for definition of active eleme + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:anchor}} + @flushright + Name=@code{"@b{anchor}@r{"} Class=@code{"}@b{Anchor}"} +@@ -1155,7 +1155,7 @@ top-left corner is at the top-left corne + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:background or :bg}} + @flushright + Name=@code{"@b{background}@r{"} Class=@code{"}@b{Background}"} +@@ -1167,7 +1167,7 @@ widget. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:bitmap}} + @flushright + Name=@code{"@b{bitmap}@r{"} Class=@code{"}@b{Bitmap}"} +@@ -1185,7 +1185,7 @@ a text display. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:borderwidth or :bd}} + @flushright + Name=@code{"@b{borderWidth}@r{"} Class=@code{"}@b{BorderWidth}"} +@@ -1201,7 +1201,7 @@ The value may have any of the forms acce + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:cursor}} + @flushright + Name=@code{"@b{cursor}@r{"} Class=@code{"}@b{Cursor}"} +@@ -1213,7 +1213,7 @@ The value may have any of the forms acce + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:cursorbackground}} + @flushright + Name=@code{"@b{cursorBackground}@r{"} Class=@code{"}@b{Foreground}"} +@@ -1229,7 +1229,7 @@ the @b{insertBackground}@r{ option.} + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:cursorborderwidth}} + @flushright + Name=@code{"@b{cursorBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"} +@@ -1244,7 +1244,7 @@ the @b{insertBorderWidth}@r{ option.} + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:cursorofftime}} + @flushright + Name=@code{"@b{cursorOffTime}@r{"} Class=@code{"}@b{OffTime}"} +@@ -1260,7 +1260,7 @@ the @b{insertOffTime}@r{ option.} + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:cursorontime}} + @flushright + Name=@code{"@b{cursorOnTime}@r{"} Class=@code{"}@b{OnTime}"} +@@ -1274,7 +1274,7 @@ the @b{insertOnTime}@r{ option.} + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:cursorwidth}} + @flushright + Name=@code{"@b{cursorWidth}@r{"} Class=@code{"}@b{CursorWidth}"} +@@ -1292,7 +1292,7 @@ the @b{insertWidth}@r{ option.} + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:disabledforeground}} + @flushright + Name=@code{"@b{disabledForeground}@r{"} Class=@code{"}@b{DisabledForeground}"} +@@ -1307,7 +1307,7 @@ with a stippled fill pattern. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:exportselection}} + @flushright + Name=@code{"@b{exportSelection}@r{"} Class=@code{"}@b{ExportSelection}"} +@@ -1326,7 +1326,7 @@ to export selections. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:font}} + @flushright + Name=@code{"@b{font}@r{"} Class=@code{"}@b{Font}"} +@@ -1337,7 +1337,7 @@ Specifies the font to use when drawing t + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:foreground or :fg}} + @flushright + Name=@code{"@b{foreground}@r{"} Class=@code{"}@b{Foreground}"} +@@ -1348,7 +1348,7 @@ Specifies the normal foreground color to + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:geometry}} + @flushright + Name=@code{"@b{geometry}@r{"} Class=@code{"}@b{Geometry}"} +@@ -1365,7 +1365,7 @@ widgets the units are usually pixels. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:insertbackground}} + @flushright + Name=@code{"@b{insertBackground}@r{"} Class=@code{"}@b{Foreground}"} +@@ -1379,7 +1379,7 @@ cursor happens to fall in the selection) + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:insertborderwidth}} + @flushright + Name=@code{"@b{insertBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"} +@@ -1392,7 +1392,7 @@ The value may have any of the forms acce + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:insertofftime}} + @flushright + Name=@code{"@b{insertOffTime}@r{"} Class=@code{"}@b{OffTime}"} +@@ -1406,7 +1406,7 @@ all the time. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:insertontime}} + @flushright + Name=@code{"@b{insertOnTime}@r{"} Class=@code{"}@b{OnTime}"} +@@ -1418,7 +1418,7 @@ milliseconds the insertion cursor should + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:insertwidth}} + @flushright + Name=@code{"@b{insertWidth}@r{"} Class=@code{"}@b{InsertWidth}"} +@@ -1434,7 +1434,7 @@ option. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:orient}} + @flushright + Name=@code{"@b{orient}@r{"} Class=@code{"}@b{Orient}"} +@@ -1448,7 +1448,7 @@ or @b{vertical} or an abbreviation of on + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:padx}} + @flushright + Name=@code{"@b{padX}@r{"} Class=@code{"}@b{Pad}"} +@@ -1466,7 +1466,7 @@ internal space to the left and/or right + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:pady}} + @flushright + Name=@code{"@b{padY}@r{"} Class=@code{"}@b{Pad}"} +@@ -1484,7 +1484,7 @@ internal space above and/or below what i + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:relief}} + @flushright + Name=@code{"@b{relief}@r{"} Class=@code{"}@b{Relief}"} +@@ -1502,7 +1502,7 @@ the exterior of the widget. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:repeatdelay}} + @flushright + Name=@code{"@b{repeatDelay}@r{"} Class=@code{"}@b{RepeatDelay}"} +@@ -1515,7 +1515,7 @@ up- and down-arrows in scrollbars. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:repeatinterval}} + @flushright + Name=@code{"@b{repeatInterval}@r{"} Class=@code{"}@b{RepeatInterval}"} +@@ -1528,7 +1528,7 @@ auto-repeats. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:scrollcommand}} + @flushright + Name=@code{"@b{scrollCommand}@r{"} Class=@code{"}@b{ScrollCommand}"} +@@ -1563,7 +1563,7 @@ options. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:selectbackground}} + @flushright + Name=@code{"@b{selectBackground}@r{"} Class=@code{"}@b{Foreground}"} +@@ -1575,7 +1575,7 @@ items. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:selectborderwidth}} + @flushright + Name=@code{"@b{selectBorderWidth}@r{"} Class=@code{"}@b{BorderWidth}"} +@@ -1588,7 +1588,7 @@ The value may have any of the forms acce + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:selectforeground}} + @flushright + Name=@code{"@b{selectForeground}@r{"} Class=@code{"}@b{Background}"} +@@ -1600,7 +1600,7 @@ items. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:setgrid}} + @flushright + Name=@code{"@b{setGrid}@r{"} Class=@code{"}@b{SetGrid}"} +@@ -1623,7 +1623,7 @@ entry for more details. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:text}} + @flushright + Name=@code{"@b{text}@r{"} Class=@code{"}@b{Text}"} +@@ -1636,7 +1636,7 @@ determined by other options, such as @b{ + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:textvariable}} + @flushright + Name=@code{"@b{textVariable}@r{"} Class=@code{"}@b{Variable}"} +@@ -1652,7 +1652,7 @@ particular widget and may be determined + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:underline}} + @flushright + Name=@code{"@b{underline}@r{"} Class=@code{"}@b{Underline}"} +@@ -1667,7 +1667,7 @@ on. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:xscrollcommand}} + @flushright + Name=@code{"@b{xScrollCommand}@r{"} Class=@code{"}@b{ScrollCommand}"} +@@ -1684,7 +1684,7 @@ on how this option is used. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:yscrollcommand}} + @flushright + Name=@code{"@b{yScrollCommand}@r{"} Class=@code{"}@b{ScrollCommand}"} +@@ -1768,7 +1768,7 @@ The first step in placing a child is to + the cavity it will lie against. Any one of the following options + may be used to specify a side: + +-@table @asis{} ++@table @asis + @item @b{top} + Position the child's parcel against the top of the cavity, + occupying the full width of the cavity. +@@ -1796,7 +1796,7 @@ desired width is the window's requested + space may be requested for the window using any of the following + options: + +-@table @asis{} ++@table @asis + @item @b{padx }@i{num} + Add @i{num} pixels to the window's requested width before computing + the parcel size as described above. +@@ -1825,7 +1825,7 @@ is smaller. If the parcel is larger tha + size, then the following options may be used to expand the + window to partially or completely fill the parcel: + +-@table @asis{} ++@table @asis + @item @b{fill} + Set the window's size to equal the parcel size. + @item @b{fillx} +@@ -1912,7 +1912,7 @@ packing them in order around the edges o + The @b{pack} command can have any of several forms, depending + on the @i{option} argument: + +-@table @asis{} ++@table @asis + @item @b{pack }@i{slave }@r{?}@i{slave ...}@r{? ?}@i{options}? + If the first argument to @b{pack} is a window name (any value + starting with ``.''), then the command is processed in the same +@@ -1947,7 +1947,7 @@ Defaults to 0. + If a slave's parcel is larger than its requested dimensions, this + option may be used to stretch the slave. + @i{Style} must have one of the following values: +-@table @asis{} ++@table @asis + @item @b{none} + Give the slave its requested dimensions plus any internal padding + requested with @b{:ipadx}@r{ or }@b{:ipady}. This is the default. +@@ -1998,7 +1998,7 @@ then any unspecified options for them re + than receiving default values. + .RE + +-@table @asis{} ++@table @asis + @item @b{pack :forget }@i{slave }@r{?}@i{slave ...}? + Removes each of the @i{slave}s from the packing order for its + master and unmaps their windows. +@@ -2046,7 +2046,7 @@ This area is called the @i{cavity}; for + is the entire area of the master. + + For each slave the packer carries out the following steps: +-@itemize @asis{} ++@itemize @asis + @item + [1] + The packer allocates a rectangular @i{parcel} for the slave +@@ -2185,7 +2185,7 @@ If the placer is already managing @i{win + In this form the @b{place} command returns an empty string as result. + The following @i{option:value} pairs are supported: + +-@table @asis{} ++@table @asis + @item @b{:in }@i{master} + @i{Master} specifes the path name of the window relative + to which @i{window} is to be placed. +@@ -2395,7 +2395,7 @@ The first argument to @b{selection} dete + rest of the arguments and the behavior of the command. The following + forms are currently supported: + +-@table @asis{} ++@table @asis + @item @b{selection :clear }@i{window} + If there is a selection anywhere on @i{window}'s display, clear it + so that no window owns the selection anymore. Returns an empty string. +@@ -2544,7 +2544,7 @@ particular window. + The command can take any of a number of different forms + depending on the @i{option} argument. The legal forms are: + +-@table @asis{} ++@table @asis + @item @b{tk :colormodel }@i{window}@r{ ?}@i{newValue}? + If @i{newValue} isn't specified, this command returns the current + color model in use for @i{window}'s screen, which will be either +@@ -2631,7 +2631,7 @@ tkvars \- Variables used or set by Tk + The following Tcl variables are either set or used by Tk at various times + in its execution: + +-@table @asis{} ++@table @asis + @item @b{tk_library} + Tk sets this variable hold the name of a directory containing a library + of Tcl scripts related to Tk. These scripts include an initialization +@@ -2763,7 +2763,7 @@ The @b{winfo} command is used to retriev + managed by Tk. It can take any of a number of different forms, + depending on the @i{option} argument. The legal forms are: + +-@table @asis{} ++@table @asis + @item @b{winfo :atom }@i{name} + Returns a decimal string giving the integer identifier for the + atom whose name is @i{name}. If no atom exists with the name +@@ -2964,7 +2964,7 @@ top-level window. + + The legal forms for the @b{wm} command are: + +-@table @asis{} ++@table @asis + @item @b{wm :aspect }@i{window}@r{ ?}@i{minNumer minDenom maxNumer maxDenom}? + If @i{minNumer}@r{, }@i{minDenom}@r{, }@i{maxNumer}@r{, and }@i{maxDenom} + are all specified, then they will be passed to the window manager +@@ -3251,7 +3251,7 @@ a handler, then Tk handles the message b + which it was received. + .RE + +-@table @asis{} ++@table @asis + @item @b{wm :sizefrom }@i{window}@r{ ?}@i{who}? + If @i{who}@r{ is specified, it must be either }@b{program} or + @b{user}, or an abbreviation of one of these two. It indicates +--- gcl27-2.7.1.orig/info/widgets.texi ++++ gcl27-2.7.1/info/widgets.texi +@@ -63,7 +63,7 @@ background disabledForeground pa + @unnumberedsubsec Arguments for Button + + +-@table @asis{} ++@table @asis + @item @code{@b{:command}} + @flushright + Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"} +@@ -76,7 +76,7 @@ window. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -92,7 +92,7 @@ from the size of the bitmap or text bein + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:state}} + @flushright + Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"} +@@ -111,7 +111,7 @@ button presses. In this state the @b{di + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -166,7 +166,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for button widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:activate} + Change the button's state to @b{active} and redisplay the button + using its active foreground and background colors instead of normal +@@ -210,7 +210,7 @@ This command is ignored if the button's + + Tk automatically creates class bindings for buttons that give them + the following default behavior: +-@itemize @asis{} ++@itemize @asis + @item + [1] + The button activates whenever the mouse passes over it and deactivates +@@ -306,7 +306,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for listbox widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -350,7 +350,7 @@ the index of the (visible) listbox eleme + @item @i{pathName }@b{:scan}@r{ }@i{option args} + This command is used to implement scanning on listboxes. It has + two forms, depending on @i{option}: +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:scan :mark }@i{x y} + Records @i{x}@r{ and }@i{y} and the current view in the listbox + window; used in conjunction with later @b{scan dragto} commands. +@@ -370,7 +370,7 @@ value is an empty string. + This command is used to adjust the selection within a listbox. It + has several forms, depending on @i{option}. In all of the forms + the index @b{end} refers to the last element in the listbox. +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:select :adjust }@i{index} + Locate the end of the selection nearest to the element given by + @i{index}@r{, and adjust that end of the selection to be at }@i{index} +@@ -414,7 +414,7 @@ element of the listbox. Returns an empt + + Tk automatically creates class bindings for listboxes that give them + the following default behavior: +-@itemize @asis{} ++@itemize @asis + @item + [1] + When button 1 is pressed over a listbox, the element underneath the +@@ -459,7 +459,7 @@ background cursor for + @unnumberedsubsec Arguments for Scale + + +-@table @asis{} ++@table @asis + @item @code{@b{:command}} + @flushright + Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"} +@@ -474,7 +474,7 @@ scale. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:from}} + @flushright + Name=@code{"@b{from}@r{"} Class=@code{"}@b{From}"} +@@ -486,7 +486,7 @@ scale. Must be an integer. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:label}} + @flushright + Name=@code{"@b{label}@r{"} Class=@code{"}@b{Label}"} +@@ -500,7 +500,7 @@ just above the left end of the scale. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:length}} + @flushright + Name=@code{"@b{length}@r{"} Class=@code{"}@b{Length}"} +@@ -514,7 +514,7 @@ it is the scale's width. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:showvalue}} + @flushright + Name=@code{"@b{showValue}@r{"} Class=@code{"}@b{ShowValue}"} +@@ -526,7 +526,7 @@ value of the scale is to be displayed. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:sliderforeground}} + @flushright + Name=@code{"@b{sliderForeground}@r{"} Class=@code{"}@b{sliderForeground}"} +@@ -539,7 +539,7 @@ determined by the @b{activeForeground} o + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:sliderlength}} + @flushright + Name=@code{"@b{sliderLength}@r{"} Class=@code{"}@b{SliderLength}"} +@@ -552,7 +552,7 @@ to @b{Tk_GetPixels}. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:state}} + @flushright + Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"} +@@ -565,7 +565,7 @@ won't activate when the mouse enters it. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:tickinterval}} + @flushright + Name=@code{"@b{tickInterval}@r{"} Class=@code{"}@b{TickInterval}"} +@@ -578,7 +578,7 @@ as 0, then no tick-marks will be display + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:to}} + @flushright + Name=@code{"@b{to}@r{"} Class=@code{"}@b{To}"} +@@ -591,7 +591,7 @@ greater than the @b{from} option. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -652,7 +652,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for scale widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -679,7 +679,7 @@ gives the new value for the scale. + When a new scale is created, it is given the following initial + behavior by default: + +-@table @asis{} ++@table @asis + @item @b{} + Change the slider display to use @b{activeForeground} instead of + @b{sliderForeground}. +@@ -721,7 +721,7 @@ insertBackground insertWidth selec + @unnumberedsubsec Arguments for Canvas + + +-@table @asis{} ++@table @asis + @item @code{@b{:closeenough}} + @flushright + Name=@code{"@b{closeEnough}@r{"} Class=@code{"}@b{CloseEnough}"} +@@ -734,7 +734,7 @@ Defaults to 1.0. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:confine}} + @flushright + Name=@code{"@b{confine}@r{"} Class=@code{"}@b{Confine}"} +@@ -749,7 +749,7 @@ be constrained within the scroll region. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -762,7 +762,7 @@ of the forms described in the COORDINATE + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:scrollincrement}} + @flushright + Name=@code{"@b{scrollIncrement}@r{"} Class=@code{"}@b{ScrollIncrement}"} +@@ -776,7 +776,7 @@ of the forms described in the COORDINATE + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:scrollregion}} + @flushright + Name=@code{"@b{scrollRegion}@r{"} Class=@code{"}@b{ScrollRegion}"} +@@ -792,7 +792,7 @@ in any of the forms given in the COORDIN + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{width}"} +@@ -932,7 +932,7 @@ Note that it is possible to refer to the + the last one in the text item; this is necessary for such + tasks as inserting new text at the end of the item. + +-@table @asis{} ++@table @asis + @item @i{number} + A decimal number giving the position of the desired character + within the text item. +@@ -977,7 +977,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. + The following widget commands are possible for canvas widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:addtag }@i{tag searchSpec }@r{?}@i{arg arg ...}? + For each item that meets the constraints specified by + @i{searchSpec}@r{ and the }@i{arg}s, add +@@ -990,7 +990,7 @@ This command returns an empty string as + @i{SearchSpec}@r{ and }@i{arg}'s may take any of the following + forms: + +-@table @asis{} ++@table @asis + @item @b{above }@i{tagOrId} + Selects the item just after (above) the one given by @i{tagOrId} + in the display list. +@@ -1097,7 +1097,7 @@ If a binding is associated with the tag + will have lower priority than all other bindings associated + with the item. + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:canvasx }@i{screenx}@r{ ?}@i{gridspacing}? + Given a screen x-coordinate @i{screenx} this command returns + the canvas x-coordinate that is displayed at that location. +@@ -1194,7 +1194,7 @@ In most cases it is advisable to follow + command with the @b{focus} command to set the focus window to + the canvas (if it wasn't there already). + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:gettags}@r{ }@i{tagOrId} + Return a list whose elements are the tags associated with the + item given by @i{tagOrId}. +@@ -1278,7 +1278,7 @@ The @i{option}\-@i{value} argument pairs + information to control the generation of Postscript. The following + options are supported: + +-@table @asis{} ++@table @asis + @item @b{:colormap }@i{varName} + @i{VarName} must be the name of a global array variable + that specifies a color mapping to use in the Postscript. +@@ -1407,7 +1407,7 @@ This command returns an empty string. + This command is used to implement scanning on canvases. It has + two forms, depending on @i{option}: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:scan :mark }@i{x y} + Records @i{x}@r{ and }@i{y} and the canvas's current view; used + in conjunction with later @b{scan dragto} commands. +@@ -1436,7 +1436,7 @@ these that supports indexing and the sel + @i{Index} gives a textual description of a position + within @i{tagOrId}, as described in INDICES above. + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:select :adjust }@i{tagOrId index} + Locate the end of the selection in @i{tagOrId} nearest + to the character given by @i{index}, and adjust that +@@ -1532,7 +1532,7 @@ by the @b{:start}@r{ and }@b{:extent} op + one of several ways (specified by the @b{:style} option). + Arcs are created with widget commands of the following form: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:create arc }@i{x1 y1 x2 y2 }@r{?}@i{option value option value ...}? + The arguments @i{x1}@r{, }@i{y1}@r{, }@i{x2}@r{, and }@i{y2} give + the coordinates of two diagonally opposite corners of a +@@ -1544,7 +1544,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for arcs: + +-@table @asis{} ++@table @asis + @item @b{:extent }@i{degrees} + Specifies the size of the angular range occupied by the arc. + The arc's range extends for @i{degrees} degrees counter-clockwise +@@ -1608,7 +1608,7 @@ Items of type @b{bitmap} appear on the d + two colors, foreground and background. + Bitmaps are created with widget commands of the following form: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:create bitmap }@i{x y }@r{?}@i{option value option value ...}? + The arguments @i{x}@r{ and }@i{y} specify the coordinates of a + point used to position the bitmap on the display (see the @b{:anchor} +@@ -1620,7 +1620,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for bitmaps: + +-@table @asis{} ++@table @asis + @item @b{:anchor }@i{anchorPos} + @i{AnchorPos} tells how to position the bitmap relative to the + positioning point for the item; it may have any of the forms +@@ -1656,7 +1656,7 @@ Items of type @b{line} appear on the dis + line segments or curves. + Lines are created with widget commands of the following form: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:create line }@i{x1 y1... xn yn }@r{?}@i{option value option value ...}? + + The arguments @i{x1}@r{ through }@i{yn} give +@@ -1669,7 +1669,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for lines: + +-@table @asis{} ++@table @asis + @item @b{:arrow }@i{where} + Indicates whether or not arrowheads are to be drawn at one or both + ends of the line. +@@ -1747,7 +1747,7 @@ the display. Each oval may have an outl + both. Ovals are created with widget commands of the + following form: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:create oval }@i{x1 y1 x2 y2 }@r{?}@i{option value option value ...}? + + The arguments @i{x1}@r{, }@i{y1}@r{, }@i{x2}@r{, and }@i{y2} give +@@ -1764,7 +1764,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for ovals: + +-@table @asis{} ++@table @asis + @item @b{:fill }@i{color} + Fill the area of the oval with @i{color}. + @i{Color}@r{ may have any of the forms accepted by }@b{Tk_GetColor}. +@@ -1805,7 +1805,7 @@ Items of type @b{polygon} appear as poly + on the display. + Polygons are created with widget commands of the following form: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:create polygon }@i{x1 y1 ... xn yn }@r{?}@i{option value option value ...}? + + +@@ -1820,7 +1820,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for polygons: + +-@table @asis{} ++@table @asis + @item @b{:fill }@i{color} + @i{Color} specifies a color to use for filling the area of the + polygon; it may have any of the forms acceptable to @b{Tk_GetColor}. +@@ -1860,7 +1860,7 @@ the display. Each rectangle may have an + both. Rectangles are created with widget commands of the + following form: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:create rectangle }@i{x1 y1 x2 y2 }@r{?}@i{option value option value ...}? + + The arguments @i{x1}@r{, }@i{y1}@r{, }@i{x2}@r{, and }@i{y2} give +@@ -1874,7 +1874,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for rectangles: + +-@table @asis{} ++@table @asis + @item @b{:fill }@i{color} + Fill the area of the rectangle with @i{color}, which may be + specified in any of the forms accepted by @b{Tk_GetColor}. +@@ -1920,7 +1920,7 @@ following text-related canvas widget com + Text items are created with widget commands of the following + form: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:create text }@i{x y }@r{?}@i{option value option value ...}? + + The arguments @i{x}@r{ and }@i{y} specify the coordinates of a +@@ -1933,7 +1933,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for text items: + +-@table @asis{} ++@table @asis + @item @b{:anchor }@i{anchorPos} + @i{AnchorPos} tells how to position the text relative to the + positioning point for the text; it may have any of the forms +@@ -2010,7 +2010,7 @@ used in @b{itemconfigure} widget command + configuration. + The following options are supported for window items: + +-@table @asis{} ++@table @asis + @item @b{:anchor }@i{anchorPos} + @i{AnchorPos} tells how to position the window relative to the + positioning point for the item; it may have any of the forms +@@ -2089,7 +2089,7 @@ activeForeground cursor + @unnumberedsubsec Arguments for Menu + + +-@table @asis{} ++@table @asis + @item @code{@b{:postcommand}} + @flushright + Name=@code{"@b{postCommand}@r{"} Class=@code{"}@b{Command}"} +@@ -2102,7 +2102,7 @@ widget command before posting the menu. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:selector}} + @flushright + Name=@code{"@b{selector}@r{"} Class=@code{"}@b{Foreground}"} +@@ -2230,7 +2230,7 @@ the cascade entry, in order for menu tra + A cascade entry posts its associated menu by invoking a + Tcl command of the form + +-@table @asis{} ++@table @asis + @item @i{menu}@b{ :post }@i{x y} + + +@@ -2257,7 +2257,7 @@ name is @i{pathName}. This + command may be used to invoke various + operations on the widget. It has the following general form: + +-@table @asis{} ++@table @asis + @item @i{pathName option }@r{?}@i{arg arg ...}? + @i{Option}@r{ and the }@i{arg}s + determine the exact behavior of the command. +@@ -2268,7 +2268,7 @@ indicator of which entry of the menu to + indicators are called @i{index}es and may be specified in + any of the following forms: + +-@table @asis{} ++@table @asis + @item @i{number} + Specifies the entry numerically, where 0 corresponds + to the top-most entry of the menu, 1 to the entry below it, and +@@ -2315,7 +2315,7 @@ is given by @i{type}@r{ and must be one + or a unique abbreviation of one of the above. If additional arguments + are present, they specify any of the following options: + +-@table @asis{} ++@table @asis + @item @b{:activebackground }@i{value} + Specifies a background color to use for displaying this entry when it + is active. +@@ -2402,7 +2402,7 @@ causes the currently-selected entry to d + The @b{add} widget command returns an empty string. + + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -2482,7 +2482,7 @@ window of the topmost pixel in the entry + + Tk automatically creates class bindings for menus that give them + the following default behavior: +-@itemize @asis{} ++@itemize @asis + @item + [1] + When the mouse cursor enters a menu, the entry underneath the mouse +@@ -2537,7 +2537,7 @@ borderWidth orient + @unnumberedsubsec Arguments for Scrollbar + + +-@table @asis{} ++@table @asis + @item @code{@b{:command}} + @flushright + Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"} +@@ -2553,7 +2553,7 @@ should appear at the top of the associat + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -2611,7 +2611,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for scrollbar widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -2659,7 +2659,7 @@ between the arrow and the slider), the s + and the bottom arrow. Pressing mouse button 1 in each area has + a different effect: + +-@table @asis{} ++@table @asis + @item @b{top arrow} + Causes the view in the associated window to shift up by one unit + (i.e. the object appears to move down one unit in its window). +@@ -2719,7 +2719,7 @@ background disabledForeground pa + @unnumberedsubsec Arguments for Checkbutton + + +-@table @asis{} ++@table @asis + @item @code{@b{:command}} + @flushright + Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"} +@@ -2733,7 +2733,7 @@ be updated before the command is invoked + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -2749,7 +2749,7 @@ from the size of the bitmap or text bein + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:offvalue}} + @flushright + Name=@code{"@b{offValue}@r{"} Class=@code{"}@b{Value}"} +@@ -2761,7 +2761,7 @@ this button is deselected. Defaults to + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:onvalue}} + @flushright + Name=@code{"@b{onValue}@r{"} Class=@code{"}@b{Value}"} +@@ -2773,7 +2773,7 @@ this button is selected. Defaults to `` + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:selector}} + @flushright + Name=@code{"@b{selector}@r{"} Class=@code{"}@b{Foreground}"} +@@ -2787,7 +2787,7 @@ drawn for the button. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:state}} + @flushright + Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"} +@@ -2806,7 +2806,7 @@ button presses. In this state the @b{di + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:variable}} + @flushright + Name=@code{"@b{variable}@r{"} Class=@code{"}@b{Variable}"} +@@ -2820,7 +2820,7 @@ window's path name). + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -2892,7 +2892,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for check button widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:activate} + Change the check button's state to @b{active} and redisplay the button + using its active foreground and background colors instead of normal +@@ -2949,7 +2949,7 @@ modifying its associated variable to ref + + Tk automatically creates class bindings for check buttons that give them + the following default behavior: +-@itemize @asis{} ++@itemize @asis + @item + [1] + The check button activates whenever the mouse passes over it and deactivates +@@ -2998,7 +2998,7 @@ background disabledForeground pa + @unnumberedsubsec Arguments for Menubutton + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -3014,7 +3014,7 @@ from the size of the bitmap or text bein + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:menu}} + @flushright + Name=@code{"@b{menu}@r{"} Class=@code{"}@b{MenuName}"} +@@ -3027,7 +3027,7 @@ operation to work via the mouse. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:state}} + @flushright + Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"} +@@ -3046,7 +3046,7 @@ button presses. In this state the @b{di + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -3109,7 +3109,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for menubutton widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:activate} + Change the menu button's state to @b{active} and redisplay the menu + button using its active foreground and background colors instead of normal +@@ -3145,7 +3145,7 @@ use ``@i{pathName }@b{:configure :state + + Tk automatically creates class bindings for menu buttons that give them + the following default behavior: +-@itemize @asis{} ++@itemize @asis + @item + [1] + A menu button activates whenever the mouse passes over it and deactivates +@@ -3216,7 +3216,7 @@ font insertOnTime select + @unnumberedsubsec Arguments for Text + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -3228,7 +3228,7 @@ Must be at least one. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:state}} + @flushright + Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"} +@@ -3242,7 +3242,7 @@ in the widget. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -3256,7 +3256,7 @@ screen units. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:wrap}} + @flushright + Name=@code{"@b{wrap}@r{"} Class=@code{"}@b{Wrap}"} +@@ -3328,7 +3328,7 @@ but the @i{modifier}s are optional. + + The @i{base} for an index must have one of the following forms: + +-@table @asis{} ++@table @asis + @item @i{line}@b{.}@i{char} + Indicates @i{char}@r{'th character on line }@i{line}. + Lines are numbered from 1 for consistency with other UNIX programs +@@ -3359,7 +3359,7 @@ If modifiers follow the base index, each + of the forms listed below. Keywords such as @b{chars}@r{ and }@b{wordend} + may be abbreviated as long as the abbreviation is unambiguous. + +-@table @asis{} ++@table @asis + @item @b{+ }@i{count}@b{ chars} + Adjust the index forward by @i{count} characters, moving to later + lines in the text if necessary. If there are fewer than @i{count} +@@ -3443,7 +3443,7 @@ If a character has been tagged, then the + with the tag override the default display style. + The following options are currently supported for tags: + +-@table @asis{} ++@table @asis + @item @b{:background }@i{color} + @i{Color} specifies the background color to use for characters + associated with the tag. +@@ -3560,7 +3560,7 @@ Text widgets support the standard X sele + Selection support is implemented via tags. + If the @b{exportSelection} option for the text widget is true + then the @b{sel} tag will be associated with the selection: +-@itemize @asis{} ++@itemize @asis + @item + [1] + Whenever characters are tagged with @b{sel} the text widget +@@ -3612,7 +3612,7 @@ the text widget's path name. @i{Option} + determine the exact behavior of the command. The following + commands are possible for text widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:compare}@r{ }@i{index1 op index2} + Compares the indices given by @i{index1}@r{ and }@i{index2} according + to the relational operator given by @i{op}, and returns 1 if +@@ -3688,7 +3688,7 @@ This command is used to manipulate marks + the command depends on the @i{option} argument that follows + the @b{mark} argument. The following forms of the command + are currently supported: +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:mark :names} + Returns a list whose elements are the names of all the marks that + are currently set. +@@ -3708,7 +3708,7 @@ This command returns an empty string. + @item @i{pathName }@b{:scan}@r{ }@i{option args} + This command is used to implement scanning on texts. It has + two forms, depending on @i{option}: +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:scan :mark }@i{y} + Records @i{y} and the current view in the text window; used in + conjunction with later @b{scan dragto} commands. Typically this +@@ -3730,7 +3730,7 @@ command depends on the @i{option} argume + @b{tag} argument. The following forms of the command are currently + supported: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:tag :add }@i{tagName index1 }@r{?}@i{index2}? + Associate the tag @i{tagName} with all of the characters starting + with @i{index1} and ending just before +@@ -3892,7 +3892,7 @@ If the @b{:pickplace}@r{ option isn't sp + appear at the top of the window. + If @b{:pickplace} is specified then the widget chooses where + @i{what} appears in the window: +-@itemize @asis{} ++@itemize @asis + @item + [1] + If @i{what} is already visible somewhere in the window then the +@@ -3920,7 +3920,7 @@ This command returns an empty string. + + Tk automatically creates class bindings for texts that give them + the following default behavior: +-@itemize @asis{} ++@itemize @asis + @item + [1] + Pressing mouse button 1 in an text positions the insertion cursor +@@ -4021,7 +4021,7 @@ font insertOnTime select + @unnumberedsubsec Arguments for Entry + + +-@table @asis{} ++@table @asis + @item @code{@b{:state}} + @flushright + Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"} +@@ -4035,7 +4035,7 @@ in the widget. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -4098,7 +4098,7 @@ Many of the widget commands for entries + arguments. An index specifies a particular character in the entry's + string, in any of the following ways: + +-@table @asis{} ++@table @asis + @item @i{number} + Specifies the character as a numerical index, where 0 corresponds + to the first character in the string. +@@ -4129,7 +4129,7 @@ rounded to the nearest legal value. + + The following commands are possible for entry widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -4162,7 +4162,7 @@ indicated by @i{index}. Returns an empt + @item @i{pathName }@b{:scan}@r{ }@i{option args} + This command is used to implement scanning on entries. It has + two forms, depending on @i{option}: +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:scan :mark }@i{x} + Records @i{x} and the current view in the entry window; used in + conjunction with later @b{scan dragto} commands. Typically this +@@ -4180,7 +4180,7 @@ value is an empty string. + @item @i{pathName }@b{:select }@i{option arg} + This command is used to adjust the selection within an entry. It + has several forms, depending on @i{option}: +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:select :adjust }@i{index} + Locate the end of the selection nearest to the character given by + @i{index}@r{, and adjust that end of the selection to be at }@i{index} +@@ -4217,7 +4217,7 @@ at the left edge of the window. Returns + Tk automatically creates class bindings for entries that give them + the following default behavior: + +-@itemize @asis{} ++@itemize @asis + @item + [1] + Clicking mouse button 1 in an entry positions the insertion cursor +@@ -4290,7 +4290,7 @@ borderWidth foreground relief + @unnumberedsubsec Arguments for Message + + +-@table @asis{} ++@table @asis + @item @code{@b{:aspect}} + @flushright + Name=@code{"@b{aspect}@r{"} Class=@code{"}@b{Aspect}"} +@@ -4309,7 +4309,7 @@ Defaults to 150. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:justify}} + @flushright + Name=@code{"@b{justify}@r{"} Class=@code{"}@b{Justify}"} +@@ -4338,7 +4338,7 @@ in the vertical span of the window. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -4408,7 +4408,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for message widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -4456,7 +4456,7 @@ borderWidth geometry + @unnumberedsubsec Arguments for Frame + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -4473,7 +4473,7 @@ all. + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -4535,7 +4535,7 @@ the frame widget's path name. @i{Option + determine the exact behavior of the command. The following + commands are possible for frame widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? }@i{?value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -4579,7 +4579,7 @@ bitmap font padY + @unnumberedsubsec Arguments for Label + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -4595,7 +4595,7 @@ from the size of the bitmap or text bein + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -4644,7 +4644,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for label widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +@@ -4689,7 +4689,7 @@ background disabledForeground pa + @unnumberedsubsec Arguments for Radiobutton + + +-@table @asis{} ++@table @asis + @item @code{@b{:command}} + @flushright + Name=@code{"@b{command}@r{"} Class=@code{"}@b{Command}"} +@@ -4703,7 +4703,7 @@ be updated before the command is invoked + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:height}} + @flushright + Name=@code{"@b{height}@r{"} Class=@code{"}@b{Height}"} +@@ -4719,7 +4719,7 @@ from the size of the bitmap or text bein + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:selector}} + @flushright + Name=@code{"@b{selector}@r{"} Class=@code{"}@b{Foreground}"} +@@ -4732,7 +4732,7 @@ If specified as an empty string then no + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:state}} + @flushright + Name=@code{"@b{state}@r{"} Class=@code{"}@b{State}"} +@@ -4751,7 +4751,7 @@ button presses. In this state the @b{di + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:value}} + @flushright + Name=@code{"@b{value}@r{"} Class=@code{"}@b{Value}"} +@@ -4763,7 +4763,7 @@ this button is selected. Defaults to th + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:variable}} + @flushright + Name=@code{"@b{variable}@r{"} Class=@code{"}@b{Variable}"} +@@ -4777,7 +4777,7 @@ Defaults to the value @b{selectedButton} + @end table + + +-@table @asis{} ++@table @asis + @item @code{@b{:width}} + @flushright + Name=@code{"@b{width}@r{"} Class=@code{"}@b{Width}"} +@@ -4853,7 +4853,7 @@ operations on the widget. It has the fo + determine the exact behavior of the command. The following + commands are possible for radio-button widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:activate} + Change the radio button's state to @b{active} and redisplay the button + using its active foreground and background colors instead of normal +@@ -4908,7 +4908,7 @@ to this widget. + + Tk automatically creates class bindings for radio buttons that give them + the following default behavior: +-@itemize @asis{} ++@itemize @asis + @item + [1] + The radio button activates whenever the mouse passes over it and deactivates +@@ -5008,7 +5008,7 @@ the toplevel widget's path name. @i{Opt + determine the exact behavior of the command. The following + commands are possible for toplevel widgets: + +-@table @asis{} ++@table @asis + @item @i{pathName }@b{:configure}@r{ ?}@i{option}@r{? ?}@i{value option value ...}? + Query or modify the configuration options of the widget. + If no @i{option} is specified, returns a list describing all of +--- gcl27-2.7.1.orig/lsp/gcl_fpe.lsp ++++ gcl27-2.7.1/lsp/gcl_fpe.lsp +@@ -2,11 +2,13 @@ + (in-package :fpe) + + (import 'si::(disassemble-instruction feenableexcept fedisableexcept fld *fixnum *float *double ++ fetestexcept feclearexcept + *fixnum *ushort *uint fun-name + si-class-direct-subclasses si-class-name si-find-class + +fe-list+ +mc-context-offsets+ floating-point-error + function-by-address clines defentry)) + (export '(break-on-floating-point-exceptions read-instruction)) ++#+no-sigfpe (export '(flush-floating-point-exceptions)) + + (eval-when + (eval compile) +@@ -128,17 +130,30 @@ + (feenableexcept a)) + + +-#.`(let ((fpe-enabled 0)) ++#.`(let ((fpe-enabled 0)(fpe-set 0)) ++ #+no-sigfpe ++ (defun flush-floating-point-exceptions nil ++ (let ((x (fetestexcept fpe-set))) ++ (unless (zerop x) ++ (feclearexcept x) ++ (floating-point-error x 0 0)))) + (defun break-on-floating-point-exceptions +- (&key suspend ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+) &aux r) ++ (&key suspend no-flush ++ ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+) ++ &aux r #+no-sigfpe(x (fetestexcept fpe-set))) + (fe-enable +- (if suspend 0 +- (setq fpe-enabled +- (logior +- ,@(mapcar (lambda (x) +- `(cond (,(car x) (push ,(intern (symbol-name (car x)) :keyword) r) ,(caddr x)) +- (0))) +- +fe-list+))))) ++ (setq fpe-set ++ (if suspend 0 ++ (setq fpe-enabled ++ (logior ++ ,@(mapcar (lambda (x) ++ `(cond (,(car x) ++ (push ,(intern (symbol-name (car x)) :keyword) r) ++ ,(caddr x)) ++ (0))) ++ +fe-list+)))))) ++ #+no-sigfpe ++ (unless (or no-flush (zerop x)) (floating-point-error x 0 0)) + r)) + + (defun subclasses (class) +@@ -154,13 +169,16 @@ + 'arithmetic-error)) + + (defun floating-point-error (code addr context) +- (break-on-floating-point-exceptions :suspend t) ++ (break-on-floating-point-exceptions :suspend t :no-flush t) + (restart-case + (unwind-protect + (let* ((fun (function-by-address addr))(m (read-instruction addr context))) + ((lambda (&rest r) (apply 'error (if (find-package :conditions) r (list (format nil "~s" r))))) + (code-condition code) + :operation (list :insn (pop m) :op (pop m) :fun fun :addr addr) :operands m :function-name (when fun (fun-name fun)))) +- (break-on-floating-point-exceptions)) ++ (break-on-floating-point-exceptions :no-flush t)) + (continue nil :report (lambda (s) (format s "Continue disabling floating point exception trapping")) +- (apply 'break-on-floating-point-exceptions (mapcan (lambda (x) (list x nil)) (break-on-floating-point-exceptions)))))) ++ (apply 'break-on-floating-point-exceptions ++ :no-flush t ++ (mapcan (lambda (x) (list x nil)) ++ (break-on-floating-point-exceptions :no-flush t)))))) +--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp ++++ gcl27-2.7.1/lsp/gcl_iolib.lsp +@@ -79,31 +79,31 @@ + (defun concatenated-stream-streams (stream) + (declare (optimize (safety 2))) + (check-type stream concatenated-stream) +- (c-stream-object0 stream)) ++ (the proper-list (c-stream-object0 stream))) + (defun broadcast-stream-streams (stream) + (declare (optimize (safety 2))) + (check-type stream broadcast-stream) +- (c-stream-object0 stream)) ++ (the proper-list (c-stream-object0 stream))) + (defun two-way-stream-input-stream (stream) + (declare (optimize (safety 2))) + (check-type stream two-way-stream) +- (c-stream-object0 stream)) ++ (the (and stream (satisfies input-stream-p)) (c-stream-object0 stream))) + (defun echo-stream-input-stream (stream) + (declare (optimize (safety 2))) + (check-type stream echo-stream) +- (c-stream-object0 stream)) ++ (the (and stream (satisfies input-stream-p)) (c-stream-object0 stream))) + (defun two-way-stream-output-stream (stream) + (declare (optimize (safety 2))) + (check-type stream two-way-stream) +- (c-stream-object1 stream)) ++ (the (and stream (satisfies output-stream-p)) (c-stream-object1 stream))) + (defun echo-stream-output-stream (stream) + (declare (optimize (safety 2))) + (check-type stream echo-stream) +- (c-stream-object1 stream)) ++ (the (and stream (satisfies output-stream-p)) (c-stream-object1 stream))) + (defun synonym-stream-symbol (stream) + (declare (optimize (safety 2))) + (check-type stream synonym-stream) +- (c-stream-object0 stream)) ++ (the symbol (c-stream-object0 stream))) + + (defun maybe-clear-input (&optional (x *standard-input*)) + (typecase x +@@ -143,7 +143,7 @@ + (defun get-output-stream-string (strm) + (declare (optimize (safety 1))) + (check-type strm string-output-stream) +- (let ((x (copy-seq (c-stream-object0 strm)))) ++ (let ((x (copy-seq (the string (c-stream-object0 strm))))) + (c-set-stream-int strm 0) + (setf (fill-pointer (c-stream-object0 strm)) 0) + x)) +@@ -531,6 +531,10 @@ + (deftype binary-stream-element-type nil 'list) + (defconstant +char-shft+ (1- (integer-length char-length))) + ++(declaim (inline byte-index)) ++(defun byte-index (k n) ++ #+:clx-little-endian k #-:clx-little-endian (- n 1 k)) ++ + (defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0)(tp (stream-element-type s))) + (declare (optimize (safety 1))) + (check-type s stream) +@@ -538,9 +542,11 @@ + (let* ((n (if tp (ash (cadr tp) (- +char-shft+)) 1))) + (dotimes (k n (let ((nb (ash n +char-shft+))) + (if (when (eq (car tp) 'signed-byte) (logbitp (1- nb) i)) (- i (ash 1 nb)) i))) +- (setq i (logior i (ash (let ((ch (read-char s eof-error-p eof-value))) ++ (setq i ++ (logior i ++ (ash (let ((ch (read-char s eof-error-p eof-value))) + (if (eq ch eof-value) (return ch) (char-code ch))) +- (ash k +char-shft+))))))) ++ (ash (byte-index k n) +char-shft+))))))) + + (defun write-byte (j s &aux (i j) (tp (stream-element-type s))) + (declare (optimize (safety 1))) +@@ -549,23 +555,27 @@ + (check-type tp binary-stream-element-type) + (let ((n (ash (cadr tp) (- +char-shft+)))) + (dotimes (k n j) +- (write-char (code-char (logand i #.(1- (ash 1 char-length)))) s) +- (setq i (ash i #.(- char-length)))))) ++ (write-char ++ (code-char ++ (logand ++ (ash i (ash (- (byte-index k n)) +char-shft+)) ++ #.(1- (ash 1 char-length)))) ++ s)))) + + #-pre-gcl + (defdlfun (:fixnum "fread") :fixnum :fixnum :fixnum :fixnum) + +-(defun read-sequence-using-fread (seq strm tp start end &aux (fp (stream-fp strm nil))) +- #+pre-gcl +- (declare (ignore seq tp start end fp)) +- #-pre-gcl +- (when fp +- (when (eq tp (aref +array-stream-types+ (c-array-elttype seq))) +- (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln))) +- (when (<= start end ln) +- (c+ start +- (|libc|:|fread| +- (c+ (c-array-self seq) (c* n start)) n (c- end start) fp))))))) ++#.`(defun read-sequence-using-fread (seq strm tp start end &aux (fp (stream-fp strm nil))) ++ #+pre-gcl ++ (declare (ignore seq tp start end fp)) ++ #-pre-gcl ++ (when fp ++ (when (eq tp (aref +array-stream-types+ (c-array-elttype seq))) ++ (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln))) ++ (when (<= start end ln) ++ (c+ start ++ (,(mdlsym "fread") ++ (c+ (c-array-self seq) (c* n start)) n (c- end start) fp))))))) + + + +@@ -592,17 +602,17 @@ + #-pre-gcl + (defdlfun (:fixnum "fwrite") :fixnum :fixnum :fixnum :fixnum) + +-(defun write-sequence-using-fwrite (seq strm tp start end &aux (fp (stream-fp strm t))) +- #+pre-gcl +- (declare (ignore seq tp start end fp)) +- #-pre-gcl +- (when fp +- (when (eq tp (aref +array-stream-types+ (c-array-elttype seq))) +- (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln))) +- (when (<= start end ln) +- (c+ start +- (|libc|:|fwrite| +- (c+ (c-array-self seq) (c* n start)) n (c- end start) fp))))))) ++#.`(defun write-sequence-using-fwrite (seq strm tp start end &aux (fp (stream-fp strm t))) ++ #+pre-gcl ++ (declare (ignore seq tp start end fp)) ++ #-pre-gcl ++ (when fp ++ (when (eq tp (aref +array-stream-types+ (c-array-elttype seq))) ++ (let* ((n (ash 1 (1- (c-array-eltsize seq))))(ln (length seq))(end (or end ln))) ++ (when (<= start end ln) ++ (c+ start ++ (,(mdlsym "fwrite") ++ (c+ (c-array-self seq) (c* n start)) n (c- end start) fp))))))) + + + (defun write-sequence (seq strm &key (start 0) end +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -1290,7 +1290,31 @@ gcl_init_alloc(void *cs_start) { + + #ifdef HAVE_MPROTECT + if (data_start) +- massert(!gcl_mprotect(data_start,(void *)core_end-data_start,PROT_READ|PROT_WRITE|PROT_EXEC)); ++ massert(!gcl_mprotect(data_start,(void *)core_end-data_start,PROT_READ|PROT_WRITE ++#ifndef W_X ++ |PROT_EXEC ++#endif ++ )); ++ ++#ifdef W_X ++ { ++ struct pageinfo *v; ++ struct typemanager *tm=tm_of(t_cfdata); ++ ++ ++ for (v=cell_list_head;v;v=v->next) ++ if (tm->tm_type==v->type) { ++ void *p; ++ ufixnum k; ++ for (p=pagetochar(page(v)),k=0;ktm_nppage;k++,p+=tm->tm_size) { ++ object o=p; ++ if (!is_free(o) && type_of(o)==t_cfdata && (void *)o->cfd.cfd_start>=data_start) ++ gcl_mprotect((void *)o->cfd.cfd_start,o->cfd.cfd_nexp<d.tt=1; + memory->cfd.cfd_name=ltn; + memory->cfd.cfd_start=(char *)fn; + faslfile=open_stream(ltn,smm_input,Cnil,sKerror); +--- gcl27-2.7.1.orig/o/file.d ++++ gcl27-2.7.1/o/file.d +@@ -1900,7 +1900,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S + + massert(!sigaction(SIGCHLD,&sa,&osa)); + +- switch((pid=pvfork())) { ++ switch((pid=pfork())) { + case -1: + FEerror("Cannot fork", 0); + break; +@@ -1909,7 +1909,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S + massert(setsid()>=0); + + if (daemon == sKpersistent) +- switch(pvfork()) { ++ switch(pfork()) { + case -1: + FEerror("daemon fork error", 0); + break; +@@ -1952,7 +1952,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S + + y=maccept(x); + +- switch((pid=pvfork())) { ++ switch((pid=pfork())) { + case 0: + massert(!sigaction(SIGCHLD,&osa,NULL)); + ifuncall1(server,y); +--- gcl27-2.7.1.orig/o/gbc.c ++++ gcl27-2.7.1/o/gbc.c +@@ -31,6 +31,7 @@ + #define NEED_MP_H + #include + #include ++#include + #include "include.h" + #include "page.h" + +@@ -957,6 +958,11 @@ sweep_phase(void) { + continue; + } + ++#ifdef W_X ++ if (type_of(x)==t_cfdata && !x->d.tt && !is_free(x)) ++ gcl_mprotect((void *)x->cfd.cfd_start,x->cfd.cfd_nexp<c.c_car,depth)^rtb[labs(depth%(sizeof(rtb)/sizeof(*rtb)))]; ++ h^=ihash_equal(x->c.c_car,depth)^rtb[labs(depth%(long)(sizeof(rtb)/sizeof(*rtb)))]; + x = x->c.c_cdr; + goto BEGIN; + break; +@@ -249,7 +249,7 @@ BEGIN: + if (depth++ <=3) + switch ((tx=type_of(x))) { + case t_cons: +- h += ihash_equalp(x->c.c_car,depth)^rtb[labs(depth%(sizeof(rtb)/sizeof(*rtb)))]; ++ h += ihash_equalp(x->c.c_car,depth)^rtb[labs(depth%(long)(sizeof(rtb)/sizeof(*rtb)))]; + x = x->c.c_cdr; + goto BEGIN; + break; +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -178,7 +178,65 @@ mbrk(void *v) { + return uc==(ufixnum)sbrk(uv-uc) ? 0 : -1; + + } +- ++ ++#if defined(__CYGWIN__)||defined(__MINGW32__) ++ ++#include ++ ++static ufixnum ++get_phys_pages_no_malloc(char n,char ramp) { ++ ++ MEMORYSTATUS m; ++ ++ m.dwLength=sizeof(m); ++ GlobalMemoryStatus(&m); ++ return m.dwTotalPhys>>PAGEWIDTH; ++ ++} ++ ++#elif defined (DARWIN) ++ ++#include ++ ++static ufixnum ++get_phys_pages_no_malloc(char n,char ramp) { ++ ++ uint64_t s; ++ size_t z=sizeof(s); ++ int m[2]={CTL_HW,HW_MEMSIZE}; ++ ++ if (sysctl(m,2,&s,&z,NULL,0)==0) ++ return s>>PAGEWIDTH; ++ ++ return 0; ++ ++} ++ ++#elif defined(__sun__) ++ ++static ufixnum ++get_phys_pages_no_malloc(char n,char ramp) { ++ ++ return sysconf(_SC_PHYS_PAGES); ++ ++} ++ ++#elif defined(FREEBSD) ++ ++#include ++#include ++ ++static ufixnum ++get_phys_pages_no_malloc(char n,char ramp) { ++ ++ size_t i,len=sizeof(i); ++ ++ return (sysctlbyname("hw.physmem",&i,&len,NULL,0) ? 0 : i)>>PAGEWIDTH; ++ ++} ++ ++#else /*Linux*/ ++ + static char * + next_line(int l,ufixnum *s) { + +@@ -240,65 +298,6 @@ parse_proc_meminfo(ufixnum *t,ufixnum *f + + } + +- +-#if defined(__CYGWIN__)||defined(__MINGW32__) +- +-#include +- +-static ufixnum +-get_phys_pages_no_malloc(char n,char ramp) { +- +- MEMORYSTATUS m; +- +- m.dwLength=sizeof(m); +- GlobalMemoryStatus(&m); +- return m.dwTotalPhys>>PAGEWIDTH; +- +-} +- +-#elif defined (DARWIN) +- +-#include +- +-static ufixnum +-get_phys_pages_no_malloc(char n,char ramp) { +- +- uint64_t s; +- size_t z=sizeof(s); +- int m[2]={CTL_HW,HW_MEMSIZE}; +- +- if (sysctl(m,2,&s,&z,NULL,0)==0) +- return s>>PAGEWIDTH; +- +- return 0; +- +-} +- +-#elif defined(__sun__) +- +-static ufixnum +-get_phys_pages_no_malloc(char n,char ramp) { +- +- return sysconf(_SC_PHYS_PAGES); +- +-} +- +-#elif defined(FREEBSD) +- +-#include +-#include +- +-static ufixnum +-get_phys_pages_no_malloc(char n,char ramp) { +- +- size_t i,len=sizeof(i); +- +- return (sysctlbyname("hw.physmem",&i,&len,NULL,0) ? 0 : i)>>PAGEWIDTH; +- +-} +- +-#else /*Linux*/ +- + static ufixnum + get_phys_pages_no_malloc(char freep,char ramp) { + +@@ -446,6 +445,13 @@ set_real_maxpage(void *beg) { + + mp=ufmin(mp,get_phys_pages1(0,0)); + ++#if defined(__APPLE__) && defined(__aarch64__) ++ { ++ extern unsigned long heap_vmsize; ++ mp=ufmin(mp,heap_vmsize>>PAGEWIDTH); ++ } ++#endif ++ + sz=ufmin(mem_bound,log_maxpage_bound); + sz=(1UL< ++#include ++#include ++ ++#ifdef __APPLE__ ++#include ++#define environ (*_NSGetEnviron()) ++#else ++extern char **environ; ++#endif ++ + static void + spawn_process_with_streams(object istream,object ostream,char *pname,char **argv) { + +- int fdin; +- int fdout; ++ int fdin,fdout,spawn_err; ++ pid_t pid; ++ posix_spawn_file_actions_t actions; + +- if (istream->sm.sm_fp == NULL || ostream->sm.sm_fp == NULL) +- FEerror("Cannot spawn process with given stream", 0); ++ massert(istream->sm.sm_fp&&ostream->sm.sm_fp); + + fdin = istream->sm.sm_int; + fdout = ostream->sm.sm_int; + +- if (!pvfork()) { +- +- /* the child --- replace standard in and out with descriptors given */ +- close(0); +- massert(dup(fdin)>=0); +- close(1); +- massert(dup(fdout)>=0); ++ massert(!posix_spawn_file_actions_init(&actions)); ++ massert(!posix_spawn_file_actions_adddup2(&actions,fdin,0)); ++ massert(!posix_spawn_file_actions_adddup2(&actions,fdout,1)); + +- close(fileno(istream->sm.sm_fp)); +- close(fileno(ostream->sm.sm_fp)); ++ massert(!posix_spawn_file_actions_addclose(&actions,fileno(istream->sm.sm_fp))); ++ massert(!posix_spawn_file_actions_addclose(&actions,fileno(ostream->sm.sm_fp))); + +- errno=0; +- execvp(pname,argv); +- _exit(128|(errno&0x7f)); ++ spawn_err = posix_spawnp(&pid, pname, &actions, NULL, argv, environ); + +- } else { ++ posix_spawn_file_actions_destroy(&actions); + +- close(fdin); +- close(fdout); +- +- } ++ massert(!spawn_err); ++ massert(!close(fdin)); ++ massert(!close(fdout)); + + } +- +- ++ + void + run_process(char *filename,char **argv) { + +--- gcl27-2.7.1.orig/o/sfasli.c ++++ gcl27-2.7.1/o/sfasli.c +@@ -129,6 +129,7 @@ LFD(build_symbol_table)(void) { + min_text=pflags&SECTION_TYPE;\ +- _fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS;}) ++ (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && !(sec->flags&S_ATTR_DEBUG);}) + + #define LOAD_SEC(sec) ({ul _fl=sec->flags&SECTION_TYPE;\ +- (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && _fl!=S_ZEROFILL;}) ++ (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && _fl!=S_ZEROFILL && !(sec->flags&S_ATTR_DEBUG);}) + + + #define MASK(n) (~(~0ULL << (n))) +@@ -44,10 +44,8 @@ typedef unsigned long ul; + STATIC_RELOC_VARS + #endif + +- +- + static int +-ovchk(ul v,ul m) { ++ovchks(ul v,ul m) { + + m|=m>>1; + v&=m; +@@ -57,15 +55,55 @@ ovchk(ul v,ul m) { + } + + static int ++ovchku(ul v,ul m) { ++ ++ return !(v&=m); ++ ++} ++ ++static int + store_val(ul *w,ul m,ul v) { + +- massert(ovchk(v,~m)); + *w=(v&m)|(*w&~m); + + return 0; + + } + ++static int ++store_valu(ul *w,ul m,ul v) { ++ ++ massert(ovchku(v,~m)); ++ return store_val(w,m,v); ++ ++ return 0; ++ ++} ++ ++static int ++store_vals(ul *w,ul m,ul v) { ++ ++ massert(ovchks(v,~m)); ++ return store_val(w,m,v); ++ ++} ++ ++#ifdef W_X ++static int ++add_vals(ul *w,ul m,ul v) { ++ ++ return store_vals(w,m,v+(*w&m)); ++ ++} ++ ++static int ++add_valu(ul *w,ul m,ul v) { ++ ++ return store_valu(w,m,v+(*w&m)); ++ ++} ++#endif ++ + #ifndef _LP64 + /*redirect trampolines gcc-4.0 gives no reloc for stub sections on x86 only*/ + static int +@@ -102,13 +140,16 @@ relocate(struct relocation_info *ri,stru + struct scattered_relocation_info *sri=(void *)ri; + ul *q=(void *)(sec->addr+(sri->r_scattered ? sri->r_address : ri->r_address)); + ul a,rel=(ul)(q+1); ++#ifdef W_X ++ static ul addend; ++#endif + + if (sri->r_scattered) + a=sri->r_value; + else if (ri->r_extern) + a=n1[ri->r_symbolnum].n_value; + else +- a=start; ++ a=ri->r_symbolnum; + + switch(sri->r_scattered ? sri->r_type : ri->r_type) { + +@@ -125,7 +166,7 @@ relocate(struct relocation_info *ri,stru + } + + static int +-relocate_symbols(struct nlist *n1,struct nlist *ne,char *st1,ul start) { ++relocate_symbols(struct nlist *n1,struct nlist *ne,char *st1,ul start,struct section *sec1) { + + struct nlist *n; + struct node *nd; +@@ -133,7 +174,7 @@ relocate_symbols(struct nlist *n1,struct + for (n=n1;nn_sect) +- n->n_value+=start; ++ n->n_value+=start+sec1[n->n_sect-1].reserved3; + else if ((nd=find_sym_ptable(st1+n->n_un.n_strx))) + n->n_value=nd->address; + else if (n->n_type&(N_PEXT|N_EXT)) +@@ -163,12 +204,37 @@ static object + load_memory(struct section *sec1,struct section *sece,void *v1, + ul *p,ul **got,ul **gote,ul *start) { + +- ul sz,gsz,sa,ma,a,fl; ++ ul sz,gsz,ma,a,fl; ++ volatile ul sa; + struct section *sec; + object memory; ++#ifdef W_X ++ ul text_pbits; ++#endif + + BEGIN_NO_INTERRUPT; + ++ for (sec=sec1;secreserved3=0;/*FIXME unneeded?*/ ++ ++ gsz=**got ? (**got+1)*sizeof(**got)-1 : 0; ++ ++#ifdef W_X ++ ++ massert(sece>sec1); ++ massert(ALLOC_SEC(sec1)); ++ massert(sec1->flags&(S_ATTR_SOME_INSTRUCTIONS|S_ATTR_PURE_INSTRUCTIONS)); ++ massert(!sec1->addr); ++ for (sec=sec1+1,sa=-1;secsec->addr) ++ sa=sec->addr; ++ text_pbits=(sa+gsz+PAGESIZE-1)>>PAGEWIDTH; ++ sa=(text_pbits<addr+=(sec->reserved3=sa); ++ ++#endif ++ + for (*p=sz=ma=0,sa=-1,sec=sec1;secsizeof(struct contblock) ? ma-1 : 0; + sz+=ma; + +- gsz=0; +- if (**got) { +- gsz=(**got+1)*sizeof(**got)-1; +- sz+=gsz; +- } +- ++ sz+=gsz; ++ + memory=new_cfdata(); +- memory->cfd.cfd_size=sz; ++ memory->cfd.cfd_size=sz; ++#ifdef W_X ++ memory->cfd.cfd_start=alloc_code_space(sz+PAGESIZE-sizeof(struct contblock),-1UL); ++ memory->cfd.cfd_start=(void *)(((ul)memory->cfd.cfd_start+(PAGESIZE-1))&~(PAGESIZE-1)); ++ memory->cfd.cfd_nexp=text_pbits; ++#else + memory->cfd.cfd_start=alloc_code_space(sz,-1UL); ++#endif + + a=(ul)memory->cfd.cfd_start; + a=(a+ma)&~ma; + for (sec=sec1;secaddr+=a; ++ sec->addr+=a; + if (LOAD_SEC(sec)) + memcpy((void *)sec->addr,v1+sec->offset,sec->size); + else +@@ -213,7 +281,11 @@ load_memory(struct section *sec1,struct + + if (**got) { + sz=**got; ++#ifdef W_X ++ *got=(void *)memory->cfd.cfd_start+(text_pbits<cfd.cfd_start+memory->cfd.cfd_size-gsz; ++#endif + gsz=sizeof(**got)-1; + *got=(void *)(((ul)*got+gsz)&~gsz); + *gote=*got+sz; +@@ -487,11 +559,14 @@ seek_to_end_ofile(FILE *f) { + #ifndef GOT_RELOC + #define GOT_RELOC(a) 0 + #endif ++#ifndef GOT_RELOC_EXTRA ++#define GOT_RELOC_EXTRA(a) 0 ++#endif + + static int + label_got_symbols(void *v1,struct section *sec,struct nlist *n1,struct nlist *ne,ul *gs) { + +- struct relocation_info *ri,*re; ++ struct relocation_info *ri,*re;/*scattered?*/ + struct nlist *n; + + *gs=0; +@@ -504,8 +579,10 @@ label_got_symbols(void *v1,struct sectio + + massert(ri->r_extern); + n=n1+ri->r_symbolnum; +- if (!n->n_desc) ++ if (!n->n_desc) { + n->n_desc=++*gs; ++ (*gs)+=GOT_RELOC_EXTRA(ri); ++ } + + } + +@@ -516,13 +593,20 @@ label_got_symbols(void *v1,struct sectio + static int + clear_protect_memory(object memory) { + ++#ifndef W_X ++ + void *p,*pe; + + p=(void *)((unsigned long)memory->cfd.cfd_start & ~(PAGESIZE-1)); + pe=(void *)((unsigned long)(memory->cfd.cfd_start+memory->cfd.cfd_size + PAGESIZE-1) & ~(PAGESIZE-1)); +- + return gcl_mprotect(p,pe-p,PROT_READ|PROT_WRITE|PROT_EXEC); + ++#else ++ ++ return gcl_mprotect((void *)memory->cfd.cfd_start,memory->cfd.cfd_nexp<cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size); ++#elif defined(CLEAR_CACHE) + CLEAR_CACHE; + #endif + + massert(!un_mmap(v1,ve)); + + if(symbol_value(sLAload_verboseA)!=Cnil) { +- printf(";; start address for %.*s %p\n", +- (int)VLEN(memory->cfd.cfd_name),memory->cfd.cfd_name->st.st_self, +- memory->cfd.cfd_start); ++ coerce_to_filename(memory->cfd.cfd_name,FN1); ++ printf(";; start address for %s %p\n",FN1,memory->cfd.cfd_start); + fflush(stdout); + } + +--- gcl27-2.7.1.orig/o/sgbc.c ++++ gcl27-2.7.1/o/sgbc.c +@@ -191,6 +191,11 @@ sgc_sweep_phase(void) { + if (TYPEWORD_TYPE_P(v->type) && x->d.s == SGC_NORMAL) + continue; + #endif ++ ++#ifdef W_X ++ if (type_of(x)==t_cfdata && !x->d.tt && !is_free(x)) ++ gcl_mprotect((void *)x->cfd.cfd_start,x->cfd.cfd_nexp<cmdsize; + } + ++static void ++copy_linkedit (struct load_command *lc, long delta) { ++ ++ struct linkedit_data_command *ldc=(struct linkedit_data_command *)lc; ++ ++ ldc->dataoff+=delta; ++ copy_other ((void *)ldc); ++ ++} ++ ++typedef struct { ++ uint32_t magic; /* 0xfade0cc0 */ ++ uint32_t length; /* Total length of SuperBlob */ ++ uint32_t count; /* Number of sub-blobs (usually 1 or 2) */ ++} CS_SuperBlob; ++ ++typedef struct { ++ uint32_t type; /* 0 for CodeDirectory, 5 for Entitlements */ ++ uint32_t offset; /* Offset from start of SuperBlob */ ++} CS_BlobIndex; ++ ++typedef struct { ++ uint32_t magic; /* 0xfade0c02 */ ++ uint32_t length; /* Length of this blob */ ++ uint32_t version; /* 0x20400 for ARM64 compatibility */ ++ uint32_t flags; /* Ad-hoc is usually 0 or 0x2 (adhoc) */ ++ uint32_t hashOffset; /* Offset to the hashes from start of this blob */ ++ uint32_t identOffset; /* Offset to the identifier string */ ++ uint32_t nSpecialSlots; /* Number of special slots (usually 0 for ad-hoc) */ ++ uint32_t nCodeSlots; /* Number of 4K pages in the file */ ++ uint32_t codeLimit; /* Total size of file being signed */ ++ uint8_t hashSize; /* 32 for SHA-256 */ ++ uint8_t hashType; /* 2 for SHA-256 */ ++ uint8_t platform; /* 0 */ ++ uint8_t pageSize; /* 12 (means 2^12 = 4096) */ ++ uint32_t spare2; /* 0 */ ++ /* Version 0x20400 adds: */ ++ uint32_t scatterOffset; /* 0 */ ++ uint32_t teamOffset; /* 0 or offset to Team ID string */ ++ uint32_t spare3; /* 0 */ ++ uint64_t codeLimit64; /* 0 (unless file > 4GB) */ ++ uint64_t execSegBase; /* File offset of the __TEXT segment */ ++ uint64_t execSegLimit; /* Size of the __TEXT segment */ ++ uint64_t execSegFlags; /* Flags (CS_EXECSEG_*) */ ++} CS_CodeDirectory; ++ ++typedef struct { ++ uint32_t magic; /* 0xfade0c01 (Requirements Set) */ ++ uint32_t length; /* Total length of this blob (usually 12 for empty sets) */ ++ uint32_t count; /* Number of Requirements in this set (0 for ad-hoc) */ ++ /* Requirement Index entries follow if count > 0 */ ++} CS_Requirements; ++ ++typedef struct { ++ uint32_t magic; /* 0xfade0b01 (CSMAGIC_BLOBWRAPPER) */ ++ uint32_t length; /* Total length of header + CMS data */ ++} CS_BlobWrapper; ++ ++#include ++/*void calculate_page_hash(const void *data, size_t len, uint8_t *out_hash) {*/ ++ ++#define uassert(a_) \ ++ ({errno=0; \ ++ if (!(a_)) { \ ++ emsg("The assertion %s on line %d of %s in function %s failed: %s", \ ++ #a_,__LINE__,__FILE__,__FUNCTION__,strerror(errno)); \ ++ do_gcl_abort(); \ ++ };}) ++#define mwrite(a,b) uassert(write(outfd,(a),(b))==(b)); ++#define mpwrite(a,b,c) uassert(pwrite(outfd,(a),(b),(c))==(b)); ++#define mpred(a,b,c) uassert(pread(outfd,(a),(b),(c))==(b)) ++#define RNDUP(x,y) (((x)+(y)-1)&~((y)-1)) ++ ++int ++dump_code_signature(struct segment_command *le_seg, ++ struct segment_command *tx_seg, ++ unsigned long le_ho,int csf) { ++ ++ struct linkedit_data_command ldc={LC_CODE_SIGNATURE,16,0,0}; ++ CS_SuperBlob sb; ++ CS_BlobIndex bi[3]; ++ CS_CodeDirectory cd; ++ CS_Requirements rq; ++ CS_BlobWrapper cms; ++ const char *id="GCL"; ++ const long nss=2,ss=32,id_len=RNDUP(strlen(id)+1,8); ++ long cd_len,len,np,i; ++ uint8_t hash[32],data[PAGESIZE]; ++ void *v; ++ ++ ++ lseek(outfd,0,SEEK_END); ++ len=lseek(outfd,0,SEEK_CUR); ++ if (len%16) { ++ unsigned long x=0; ++ mwrite(&x,sizeof(x)); ++ len=lseek(outfd,0,SEEK_CUR); ++ } ++ ldc.dataoff=len; ++ ++ np=RNDUP(len,PAGESIZE)>>PAGEWIDTH; ++ cd_len=sizeof(cd)+id_len+(nss+np)*ss; ++ ldc.datasize=sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq)+sizeof(cms); ++ ++ mpwrite(&ldc,sizeof(ldc),curr_header_offset); ++ curr_header_offset+=ldc.cmdsize; ++ ++ le_seg->filesize+=ldc.datasize; ++ le_seg->vmsize+=RNDUP(ldc.datasize,PAGESIZE); ++ mpwrite(le_seg,sizeof(*le_seg),le_ho); ++ ++ uassert(curr_header_offset<=text_seg_lowest_offset); ++ ++#if VERBOSE ++ printf ("%ld unused bytes follow Mach-O header\n", ++ text_seg_lowest_offset - curr_header_offset); ++#endif ++ ++ mh.sizeofcmds=curr_header_offset-sizeof(mh); ++ mh.ncmds+=(1-csf); ++ mpwrite(&mh,sizeof(mh),0); ++ ++ sb.magic=htonl(0xfade0cc0); ++ sb.length=htonl(sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq)+sizeof(cms)); ++ sb.count=htonl(sizeof(bi)/sizeof(*bi)); ++ mwrite(&sb,sizeof(sb)); ++ ++ bi[0].type=htonl(0); ++ bi[0].offset=htonl(sizeof(sb)+sizeof(bi)); ++ bi[1].type=htonl(2); ++ bi[1].offset=htonl(sizeof(sb)+sizeof(bi)+cd_len); ++ bi[2].type=htonl(0x10000); ++ bi[2].offset=htonl(sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq)); ++ mwrite(&bi,sizeof(bi)); ++ ++ cd.magic=htonl(0xfade0c02); ++ cd.length=htonl(cd_len); ++ cd.version=htonl(0x20400); ++ cd.flags=htonl(2); ++ cd.hashOffset=htonl(cd_len-np*ss); ++ cd.identOffset=htonl(sizeof(cd)); ++ cd.nSpecialSlots=htonl(nss); ++ cd.nCodeSlots=htonl(np); ++ cd.codeLimit=htonl(len<0x100000000 ? len : 0); ++ cd.hashSize=32; ++ cd.hashType=2; ++ cd.platform=0; ++ cd.pageSize=PAGEWIDTH; ++ cd.spare2=0; ++ cd.scatterOffset=htonl(0); ++ cd.teamOffset=htonl(0); ++ cd.spare3=htonl(0); ++ cd.codeLimit64=htonll(len>=0x100000000 ? len : 0); ++ cd.execSegBase=htonll(tx_seg->fileoff); ++ cd.execSegLimit=htonll(tx_seg->filesize); ++ cd.execSegFlags=htonll(1); ++ mwrite(&cd,sizeof(cd)); ++ ++ uassert(v=alloca(id_len)); ++ uassert(memset(v,0,id_len)); ++ uassert(strcpy(v,id)); ++ mwrite(v,id_len); ++ ++ rq.magic=htonl(0xfade0c01); ++ rq.length=htonl(12); ++ rq.count=htonl(0); ++ CC_SHA256(&rq,sizeof(rq),hash); ++ mwrite(hash,sizeof(hash)); ++ ++ uassert(memset(hash,0,sizeof(hash))); ++ mwrite(hash,sizeof(hash)); ++ ++ for (i=0;icmd) { ++ case LC_SEGMENT: ++ if (strncmp (((struct segment_command *) lca[i])->segname, SEG_LINKEDIT, 16) == 0) { ++ linkedit_vmsize=((struct segment_command *) lca[i])->vmsize; ++ le_seg=(struct segment_command *)lca[i]; ++ } else if (strncmp (((struct segment_command *) lca[i])->segname, SEG_TEXT, 16) == 0) { ++ text_vmaddr=((struct segment_command *) lca[i])->vmaddr; ++ tx_seg=(struct segment_command *)lca[i]; ++ } ++ } ++ uassert(le_seg&&tx_seg); + + for (i = 0; i < nlc; i++) + switch (lca[i]->cmd) { +@@ -844,10 +1048,18 @@ dump_it () { + extern char *data_start; + struct section *sectp = (struct section *) (scp + 1); + unsigned long header_offset=curr_header_offset + sizeof (struct segment_command); ++ extern int in_pre_gcl;/*support libboot.so*/ ++ unsigned long heap_vmsize= \ ++ (in_pre_gcl ? SAVED_PRE_IMAGE_SPAN : SAVED_IMAGE_SPAN) - \ ++ (long)((long)data_start-text_vmaddr) - \ ++ linkedit_vmsize; ++ ++ if (core_end-data_start>heap_vmsize) ++ unexec_error ("data exceeds __HEAP vmsize"); + + scp->vmaddr=(long)data_start; +- linkedit_vmdelta=(1UL<<37)-scp->vmsize; +- scp->vmsize=(1UL<<37); ++ linkedit_vmdelta=heap_vmsize-scp->vmsize; ++ scp->vmsize=heap_vmsize; + scp->fileoff=curr_file_offset; + scp->filesize=core_end-data_start; + scp->maxprot=VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE; +@@ -858,6 +1070,7 @@ dump_it () { + sectp->addr=scp->vmaddr; + sectp->size=scp->filesize; + sectp->flags=S_REGULAR; ++ sectp->offset=scp->fileoff; + + if (!unexec_write (header_offset, sectp, sizeof (struct section))) + unexec_error ("cannot write section _HEAP's header"); +@@ -876,6 +1089,7 @@ dump_it () { + unexec_error ("cannot handle multiple LINKEDIT segments in input file"); + linkedit_delta = curr_file_offset - scp->fileoff; + scp->vmaddr+=linkedit_vmdelta; ++ le_ho=curr_header_offset; + copy_segment (lca[i]); + } else + copy_segment (lca[i]); +@@ -896,22 +1110,20 @@ dump_it () { + copy_dyld_info (lca[i], linkedit_delta); + break; + #endif ++ case LC_CODE_SIGNATURE: ++ csf=1; ++ break; ++ case LC_DATA_IN_CODE: ++ case LC_FUNCTION_STARTS: ++ case LC_DYLD_EXPORTS_TRIE: ++ copy_linkedit(lca[i],linkedit_delta);/*FIXME*/ ++ break; + default: + copy_other (lca[i]); + break; + } +- +- if (curr_header_offset > text_seg_lowest_offset) +- unexec_error ("not enough room for load commands for new __DATA segments"); +- +-#if VERBOSE +- printf ("%ld unused bytes follow Mach-O header\n", +- text_seg_lowest_offset - curr_header_offset); +-#endif +- +- mh.sizeofcmds = curr_header_offset - sizeof (struct mach_header); +- if (!unexec_write (0, &mh, sizeof (struct mach_header))) +- unexec_error ("cannot write final header contents"); ++ ++ dump_code_signature(le_seg,tx_seg,le_ho,csf); + + } + +@@ -1014,7 +1226,7 @@ unexec (char *outfile, char *infile, voi + if ((infd = open (infile, O_RDONLY, 0)) < 0) + unexec_error ("cannot open input file `%s'", infile); + +- if ((outfd = open (outfile, O_WRONLY | O_TRUNC | O_CREAT, 0755)) < 0) { ++ if ((outfd = open (outfile, O_RDWR | O_TRUNC | O_CREAT, 0755)) < 0) { + close (infd); + unexec_error ("cannot open output file `%s'", outfile); + } +@@ -1042,7 +1254,7 @@ static size_t stub_size (malloc_zone_t * + + #ifdef HAVE_MALLOC_ZONE_MEMALIGN + static void * +-stub_memalign(size_t boundary, size_t size) { ++stub_memalign(malloc_zone_t *zone,size_t boundary, size_t size) { + + extern void *my_malloc (size_t); + void *v=my_malloc(size+boundary-1); +--- gcl27-2.7.1.orig/o/unixsys.c ++++ gcl27-2.7.1/o/unixsys.c +@@ -41,7 +41,7 @@ vsystem(char *command) { + char *c; + const char *x1[]={"/bin/sh","-c",NULL,NULL},*spc=" \n\t",**p1,**pp,**pe; + int s; +- pid_t pid; ++ pid_t pid,pid1; + posix_spawnattr_t attr; + posix_spawn_file_actions_t file_actions; + extern char **environ; +@@ -68,7 +68,9 @@ vsystem(char *command) { + massert(!posix_spawn_file_actions_destroy(&file_actions)); + + massert(pid>0); +- massert(pid==waitpid(pid,&s,0)); ++ ++ for (;(pid1=waitpid(pid,&s,0))!=pid && errno==EINTR;); ++ massert(pid==pid1); + + if ((s>>8)&128) + emsg("execvp failure when executing '%s': %s\n",command,strerror((s>>8)&0x7f)); +--- gcl27-2.7.1.orig/o/usig.c ++++ gcl27-2.7.1/o/usig.c +@@ -173,6 +173,18 @@ DEFUN("FEENABLEEXCEPT",object,fSfeenable + + } + ++DEFUN("FETESTEXCEPT",object,fSfetestexcept,SI,1,1,NONE,II,OO,OO,OO,(fixnum x),"") { ++ ++ RETURN1((object)(long)fetestexcept(x)); ++ ++} ++ ++DEFUN("FECLEAREXCEPT",object,fSfeclearexcept,SI,1,1,NONE,II,OO,OO,OO,(fixnum x),"") { ++ ++ RETURN1((object)(long)feclearexcept(x)); ++ ++} ++ + DEFUN("FEDISABLEEXCEPT",object,fSfedisableexcept,SI,0,0,NONE,IO,OO,OO,OO,(void),"") { + + fixnum x=0; +--- gcl27-2.7.1.orig/o/xdrfuns.c ++++ gcl27-2.7.1/o/xdrfuns.c +@@ -163,6 +163,9 @@ DEFUN("XDR-READ",object,fSxdr_read,SI,2, + return elt; + break; + default: ++ {short s; ++ xdr_short(xdrp,&s); ++ }/*ensure stub*/ + FEerror("unsupported xdr ~a",1,elt); + return elt; + break; +--- gcl27-2.7.1.orig/pcl/gcl_pcl_dfun.lisp ++++ gcl27-2.7.1/pcl/gcl_pcl_dfun.lisp +@@ -1345,14 +1345,17 @@ And so, we are saved. + (t t))) + + (defun class-applicable-using-class-p (specl type) +- (let ((pred (memq specl (if (eq *boot-state* 'complete) ++ (let* ((pred (memq specl (if (eq *boot-state* 'complete) + (class-precedence-list type) +- (early-class-precedence-list type))))) ++ (early-class-precedence-list type)))) ++ ;FIXME C compiler bug workaround ignored variadic decl macosx arm ++ (scp (unless (or pred *in-precompute-effective-methods-p*) ++ (superclasses-compatible-p specl type)))) + (values pred + (or pred + (if (not *in-precompute-effective-methods-p*) + ;; classes might get common subclass +- (superclasses-compatible-p specl type) ++ scp + ;; worry only about existing classes + (classes-have-common-subclass-p specl type)))))) + diff --git a/debian/patches/Version_2_7_2pre19 b/debian/patches/Version_2_7_2pre19 new file mode 100644 index 00000000..98d370a2 --- /dev/null +++ b/debian/patches/Version_2_7_2pre19 @@ -0,0 +1,660 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 13 2026 17:11:44 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +Bug-Debian: https://bugs.debian.org/1105309 +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -31,6 +31,14 @@ my_unixport_LIBRARIES=unixport/libgcl.a + bin_SCRIPTS=bin/gcl + check_SCRIPTS=sb_ansi-tests/test_results sb_bench/timing_results + info_TEXINFOS=info/gcl.texi info/gcl-si.texi ++info_gcl_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\ ++ chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \ ++ chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \ ++ chap-22 chap-23 chap-24 chap-25 chap-26 chap-a)) ++info_gcl_si_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\ ++ number sequence character list io form compile \ ++ symbol system structure iteration user-interface doc type internal c-interface \ ++ si-defs debug misc compiler-defs japi)) + my_unixport_DATA=$(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ + gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) + my_h_DATA=h/cmpinclude.h +@@ -85,6 +93,7 @@ dist_noinst_DATA+=$(addprefix xgcl-2/,dw + $(patsubst %.o,%.lsp,$(X_OBJS))) + + info_TEXINFOS+=info/gcl-dwdoc.texi ++info_gcl_dwdoc_TEXINFOS= + + if AMM_GPROF + noinst_LIBRARIES+=lib/libxgcl_gprof.a +@@ -105,22 +114,15 @@ dist_gcltkdoc_DATA=$(addprefix gcl-tk/de + nqthm-stack showVars widget)) + dist_noinst_DATA+=gcl-tk/tkl.lisp gcl-tk/tinfo.lsp + info_TEXINFOS+=info/gcl-tk.texi +- ++info_gcl_tk_TEXINFOS=$(addprefix info/,$(addsuffix .texi,general widgets control)) + endif + +-EXTRA_DIST=$(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\ ++EXTRA_DIST=$(D_SRC) $(INCL_C) $(INIT_L)\ + lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \ + majvers minvers git.tag release bin/c23.awk + + # end of primaries + +-INCL_TEXI=$(addprefix info/,$(addsuffix .texi,\ +- bind c-interface chap-1 chap-10 chap-11 chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 \ +- chap-2 chap-20 chap-21 chap-22 chap-23 chap-24 chap-25 chap-26 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 \ +- chap-9 chap-a character compile compiler-defs control debug doc form \ +- general internal io iteration japi list misc number sequence si-defs structure symbol system type \ +- user-interface widgets)) +- + INCL_C=o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \ + o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \ + o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c +@@ -364,8 +366,9 @@ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o + gcl0/%.o: | unixport/gcl0 + rm -f $(@D)/$*.done + $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ +- [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ +- ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link ++ [ "$*" = "gcl_seqlib" ] || [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || \ ++ [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ ++ ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link, clang variadic pointer bug + + $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp + $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp +@@ -590,7 +593,8 @@ info/gcl%-si.texi: info/gcl-si.texi + info/gcl%-tk.texi: info/gcl-tk.texi + sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@ + info/gcl%.texi: info/gcl.texi +- sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@ ++ echo $* | grep -q '-' || sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@ ++ touch $@ + + %.info: %.texi | xbin/mktmp # FIXME parallel ugliness + i=$$($| $@);ln -f $< $$i;$(MAKEINFO) $$i --output $@;rm -f $$i +@@ -624,18 +628,3 @@ AM_ETAGSFLAGS=--regex='/[ \n\t\#\.`]*(de + --regex='/[ \n\t\#\.`]*(defmfun[ \n\t]+"[^ \n\t"]+"[ \n\t]+\([^ \n\t]+\)/\1/' + + TAGS_FILES=lsp/*.lsp cmpnew/*.lsp mod/*.lsp pcl/*sp clcs/*sp xgcl-2/*p +- +-info/gcl.texi: $(addprefix info/,$(addsuffix .texi,\ +- chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \ +- chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \ +- chap-22 chap-23 chap-24 chap-25 chap-26 chap-a)) +- touch $@ +- +-info/gcl-si.texi: $(addprefix info/,$(addsuffix .texi,\ +- number sequence character list io form compile \ +- symbol system structure iteration user-interface doc type internal c-interface \ +- si-defs debug misc compiler-defs japi)) +- touch $@ +- +-info/gcl-tk.texi: $(addprefix info/,$(addsuffix .texi,general widgets control)) +- touch $@ +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -741,7 +741,9 @@ am__define_uniq_tagged_files = \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` + AM_RECURSIVE_TARGETS = cscope +-am__DIST_COMMON = $(dist_man1_MANS) $(srcdir)/Makefile.in \ ++am__DIST_COMMON = $(dist_man1_MANS) $(info_gcl_TEXINFOS) \ ++ $(info_gcl_dwdoc_TEXINFOS) $(info_gcl_si_TEXINFOS) \ ++ $(info_gcl_tk_TEXINFOS) $(srcdir)/Makefile.in \ + $(top_srcdir)/bin/gcl.in $(top_srcdir)/gcl-tk/gcltksrv.in \ + $(top_srcdir)/h/gclincl.h.in \ + $(top_srcdir)/unixport/init_raw.lsp.in AUTHORS COPYING \ +@@ -955,6 +957,16 @@ bin_SCRIPTS = bin/gcl + check_SCRIPTS = sb_ansi-tests/test_results sb_bench/timing_results + info_TEXINFOS = info/gcl.texi info/gcl-si.texi $(am__append_6) \ + $(am__append_9) ++info_gcl_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\ ++ chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \ ++ chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \ ++ chap-22 chap-23 chap-24 chap-25 chap-26 chap-a)) ++ ++info_gcl_si_TEXINFOS = $(addprefix info/,$(addsuffix .texi,\ ++ number sequence character list io form compile \ ++ symbol system structure iteration user-interface doc type internal c-interface \ ++ si-defs debug misc compiler-defs japi)) ++ + my_unixport_DATA = $(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ + gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) + +@@ -990,6 +1002,7 @@ dist_noinst_DATA = $(am__append_5) $(am_ + @AMM_XGCL_TRUE@ Xlib Xutil X XAtom defentry_events Xstruct XStruct_l_3 \ + @AMM_XGCL_TRUE@ general keysymdef X10 Xinit dwtrans tohtml index)) + ++@AMM_XGCL_TRUE@info_gcl_dwdoc_TEXINFOS = + @AMM_TK_TRUE@my_gcltk_SCRIPTS = gcl-tk/gcltksrv + @AMM_TK_TRUE@my_gcltk_DATA = gcl-tk/tkl.o gcl-tk/tinfo.o gcl-tk/demos/gc-monitor.o + @AMM_TK_TRUE@gcltkdoc_DATA = gcl-tk/demos/index.lsp +@@ -999,19 +1012,13 @@ dist_noinst_DATA = $(am__append_5) $(am_ + @AMM_TK_TRUE@ mkLabel mkListbox mkPlot mkRadio mkRuler mkSearch mkStyles mkTextBind mkVScale \ + @AMM_TK_TRUE@ nqthm-stack showVars widget)) + +-EXTRA_DIST = $(D_SRC) $(INCL_C) $(INIT_L) $(INCL_TEXI)\ ++@AMM_TK_TRUE@info_gcl_tk_TEXINFOS = $(addprefix info/,$(addsuffix .texi,general widgets control)) ++EXTRA_DIST = $(D_SRC) $(INCL_C) $(INIT_L)\ + lsp cmpnew mod pcl clcs ansi-tests elisp xbin bench \ + majvers minvers git.tag release bin/c23.awk + + + # end of primaries +-INCL_TEXI = $(addprefix info/,$(addsuffix .texi,\ +- bind c-interface chap-1 chap-10 chap-11 chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 \ +- chap-2 chap-20 chap-21 chap-22 chap-23 chap-24 chap-25 chap-26 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 \ +- chap-9 chap-a character compile compiler-defs control debug doc form \ +- general internal io iteration japi list misc number sequence si-defs structure symbol system type \ +- user-interface widgets)) +- + INCL_C = o/sgbc.c o/gmp_big.c o/gmp.c o/gmp_num_log.c o/cmac.c o/regexp.c o/unexelf.c o/unexmacosx.c o/unexnt.c \ + o/save.c o/xdrfuns.c o/fasdump.c o/usig2_aux.c o/sfaslelf.c o/sfaslmacho.c o/sfaslcoff.c gcl-tk/comm.c \ + o/sfasli.c o/firstfile.c o/lastfile.c o/pre_qfv.c +@@ -3106,7 +3113,7 @@ info/$(am__dirstamp): + @$(MKDIR_P) info + @: >>info/$(am__dirstamp) + +-info/gcl.info: info/gcl.texi ++info/gcl.info: info/gcl.texi $(info_gcl_TEXINFOS) + @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ + rm -rf $$backupdir && mkdir $$backupdir && \ +@@ -3125,19 +3132,19 @@ info/gcl.info: info/gcl.texi + fi; \ + rm -rf $$backupdir; exit $$rc + +-info/gcl.dvi: info/gcl.texi info/$(am__dirstamp) ++info/gcl.dvi: info/gcl.texi $(info_gcl_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl.texi' || echo '$(srcdir)/'`info/gcl.texi + +-info/gcl.pdf: info/gcl.texi info/$(am__dirstamp) ++info/gcl.pdf: info/gcl.texi $(info_gcl_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl.texi' || echo '$(srcdir)/'`info/gcl.texi + +-info/gcl.html: info/gcl.texi info/$(am__dirstamp) ++info/gcl.html: info/gcl.texi $(info_gcl_TEXINFOS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \ + -o $(@:.html=.htp) `test -f 'info/gcl.texi' || echo '$(srcdir)/'`info/gcl.texi; \ +@@ -3147,7 +3154,7 @@ info/gcl.html: info/gcl.texi info/$(am_ + rm -rf $(@:.html=.htp); exit 1; \ + fi + +-info/gcl-si.info: info/gcl-si.texi ++info/gcl-si.info: info/gcl-si.texi $(info_gcl_si_TEXINFOS) + @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ + rm -rf $$backupdir && mkdir $$backupdir && \ +@@ -3166,19 +3173,19 @@ info/gcl-si.info: info/gcl-si.texi + fi; \ + rm -rf $$backupdir; exit $$rc + +-info/gcl-si.dvi: info/gcl-si.texi info/$(am__dirstamp) ++info/gcl-si.dvi: info/gcl-si.texi $(info_gcl_si_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl-si.texi' || echo '$(srcdir)/'`info/gcl-si.texi + +-info/gcl-si.pdf: info/gcl-si.texi info/$(am__dirstamp) ++info/gcl-si.pdf: info/gcl-si.texi $(info_gcl_si_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl-si.texi' || echo '$(srcdir)/'`info/gcl-si.texi + +-info/gcl-si.html: info/gcl-si.texi info/$(am__dirstamp) ++info/gcl-si.html: info/gcl-si.texi $(info_gcl_si_TEXINFOS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \ + -o $(@:.html=.htp) `test -f 'info/gcl-si.texi' || echo '$(srcdir)/'`info/gcl-si.texi; \ +@@ -3188,7 +3195,7 @@ info/gcl-si.html: info/gcl-si.texi info + rm -rf $(@:.html=.htp); exit 1; \ + fi + +-info/gcl-dwdoc.info: info/gcl-dwdoc.texi ++info/gcl-dwdoc.info: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS) + @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ + rm -rf $$backupdir && mkdir $$backupdir && \ +@@ -3207,19 +3214,19 @@ info/gcl-dwdoc.info: info/gcl-dwdoc.texi + fi; \ + rm -rf $$backupdir; exit $$rc + +-info/gcl-dwdoc.dvi: info/gcl-dwdoc.texi info/$(am__dirstamp) ++info/gcl-dwdoc.dvi: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl-dwdoc.texi' || echo '$(srcdir)/'`info/gcl-dwdoc.texi + +-info/gcl-dwdoc.pdf: info/gcl-dwdoc.texi info/$(am__dirstamp) ++info/gcl-dwdoc.pdf: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl-dwdoc.texi' || echo '$(srcdir)/'`info/gcl-dwdoc.texi + +-info/gcl-dwdoc.html: info/gcl-dwdoc.texi info/$(am__dirstamp) ++info/gcl-dwdoc.html: info/gcl-dwdoc.texi $(info_gcl_dwdoc_TEXINFOS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \ + -o $(@:.html=.htp) `test -f 'info/gcl-dwdoc.texi' || echo '$(srcdir)/'`info/gcl-dwdoc.texi; \ +@@ -3229,7 +3236,7 @@ info/gcl-dwdoc.html: info/gcl-dwdoc.texi + rm -rf $(@:.html=.htp); exit 1; \ + fi + +-info/gcl-tk.info: info/gcl-tk.texi ++info/gcl-tk.info: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS) + @test -f info/$(am__dirstamp) || $(MAKE) $(AM_MAKEFLAGS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ + rm -rf $$backupdir && mkdir $$backupdir && \ +@@ -3248,19 +3255,19 @@ info/gcl-tk.info: info/gcl-tk.texi + fi; \ + rm -rf $$backupdir; exit $$rc + +-info/gcl-tk.dvi: info/gcl-tk.texi info/$(am__dirstamp) ++info/gcl-tk.dvi: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2DVI) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl-tk.texi' || echo '$(srcdir)/'`info/gcl-tk.texi + +-info/gcl-tk.pdf: info/gcl-tk.texi info/$(am__dirstamp) ++info/gcl-tk.pdf: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS) info/$(am__dirstamp) + $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info' \ + $(TEXI2PDF) $(AM_TEXI2FLAGS) -I info -I $(srcdir)/info $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ + `test -f 'info/gcl-tk.texi' || echo '$(srcdir)/'`info/gcl-tk.texi + +-info/gcl-tk.html: info/gcl-tk.texi info/$(am__dirstamp) ++info/gcl-tk.html: info/gcl-tk.texi $(info_gcl_tk_TEXINFOS) info/$(am__dirstamp) + $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I info -I $(srcdir)/info \ + -o $(@:.html=.htp) `test -f 'info/gcl-tk.texi' || echo '$(srcdir)/'`info/gcl-tk.texi; \ +@@ -4665,8 +4672,9 @@ $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o + gcl0/%.o: | unixport/gcl0 + rm -f $(@D)/$*.done + $(word 1,$|) -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ +- [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ +- ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link ++ [ "$*" = "gcl_seqlib" ] || [ "$*" = "gcl_evalmacros" ] || [ "$*" = "gcl_top" ] || \ ++ [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ ++ ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link, clang variadic pointer bug + + $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp + $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp +@@ -4876,7 +4884,8 @@ info/gcl%-si.texi: info/gcl-si.texi + info/gcl%-tk.texi: info/gcl-tk.texi + sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@ + info/gcl%.texi: info/gcl.texi +- sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@ ++ echo $* | grep -q '-' || sed -e 's,gcl\([:.-]\),gcl$*\1,g' $< >$@ ++ touch $@ + + %.info: %.texi | xbin/mktmp # FIXME parallel ugliness + i=$$($| $@);ln -f $< $$i;$(MAKEINFO) $$i --output $@;rm -f $$i +@@ -4905,21 +4914,6 @@ distclean-local: + rm -rf gcl.script unixport/gcl.script #FIXME + rm -rf h/config.h #FIXME + +-info/gcl.texi: $(addprefix info/,$(addsuffix .texi,\ +- chap-1 chap-2 chap-3 chap-4 chap-5 chap-6 chap-7 chap-8 chap-9 chap-10 chap-11 \ +- chap-12 chap-13 chap-14 chap-15 chap-16 chap-17 chap-18 chap-19 chap-20 chap-21 \ +- chap-22 chap-23 chap-24 chap-25 chap-26 chap-a)) +- touch $@ +- +-info/gcl-si.texi: $(addprefix info/,$(addsuffix .texi,\ +- number sequence character list io form compile \ +- symbol system structure iteration user-interface doc type internal c-interface \ +- si-defs debug misc compiler-defs japi)) +- touch $@ +- +-info/gcl-tk.texi: $(addprefix info/,$(addsuffix .texi,general widgets control)) +- touch $@ +- + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre18" ++"Version_2_7_2pre19" +--- gcl27-2.7.1.orig/info/c-interface.texi ++++ gcl27-2.7.1/info/c-interface.texi +@@ -21,7 +21,7 @@ which reference other libraries, but in + portable. + + +-@node External Shared Libraries, , C Interface, C Interface ++@node External Shared Libraries, , Available Symbols, C Interface + @section External Shared Libraries + + @deffn {Macro} DEFDLFUN +--- gcl27-2.7.1.orig/info/chap-4.texi ++++ gcl27-2.7.1/info/chap-4.texi +@@ -88,26 +88,25 @@ the sections specified in @i{Figure~4--1 + that are particularly relevant to the object system. + @i{Figure~9--1} lists the defined @i{condition} @i{types}. + +-@format +-@group +-@noindent +-@w{ @b{Section} Data Type } +-@w{ _________________________________________________________________________} +-@w{ @ref{Classes} Object System types } +-@w{ @ref{Slots} Object System types } +-@w{ @ref{Objects} Object System types } +-@w{ @ref{Generic Functions and Methods} Object System types } +-@w{ @ref{Condition System Concepts} Condition System types } +-@w{ @ref{Types and Classes} Miscellaneous types } +-@w{ @ref{Syntax} All types---read and print syntax } +-@w{ @ref{The Lisp Printer} All types---print syntax } +-@w{ @ref{Compilation} All types---compilation issues } + ++@sp 1 + @noindent +-@w{ Figure 4--1: Cross-References to Data Type Information } ++@multitable @columnfractions .53 .47 ++@headitem Section @tab Data Type ++@item @ref{Classes} @tab Object System types ++@item @ref{Slots} @tab Object System types ++@item @ref{Objects} @tab Object System types ++@item @ref{Generic Functions and Methods} @tab Object System types ++@item @ref{Condition System Concepts} @tab Condition System types ++@item @ref{Types and Classes} @tab Miscellaneous types ++@item @ref{Syntax} @tab All types---read and print syntax ++@item @ref{The Lisp Printer} @tab All types---print syntax ++@item @ref{Compilation} @tab All types---compilation issues ++@end multitable ++ ++@sp 1 ++@center Figure 4--1: Cross-References to Data Type Information + +-@end group +-@end format + + @node Type Relationships, Type Specifiers, Data Type Definition, Types + @subsection Type Relationships +--- gcl27-2.7.1.orig/info/control.texi ++++ gcl27-2.7.1/info/control.texi +@@ -926,7 +926,7 @@ At any given time, the only menus availa + are those associated with the top-level window containing the + input focus. + Menu traversal is initiated by one of the following actions: +-@itemize @asis ++@itemize @asis{} + @item + [1] + If is typed, then the first menu button in the list for the +@@ -950,7 +950,7 @@ its first entry. + + Once a menu has been posted, the input focus is switched to that + menu and the following actions are possible: +-@itemize @asis ++@itemize @asis{} + @item + [1] + Typing or clicking mouse button 1 outside the menu button or +@@ -2046,7 +2046,7 @@ This area is called the @i{cavity}; for + is the entire area of the master. + + For each slave the packer carries out the following steps: +-@itemize @asis ++@itemize @asis{} + @item + [1] + The packer allocates a rectangular @i{parcel} for the slave +--- gcl27-2.7.1.orig/info/gcl-si.texi ++++ gcl27-2.7.1/info/gcl-si.texi +@@ -39,8 +39,8 @@ END-INFO-DIR-ENTRY + @center @titlefont{GCL SI Manual} + @end titlepage + +-@node Top, Numbers, (dir), (dir) +-@top ++@node Top ++@top Top + + @menu + * Numbers:: +@@ -67,6 +67,7 @@ END-INFO-DIR-ENTRY + * Function Index:: + * Variable Index:: + ++@detailmenu + --- The Detailed Node Listing --- + + Operating System +@@ -96,6 +97,7 @@ Miscellaneous + * Environment:: + * Inititialization:: + * Low Level X Interface:: ++@end detailmenu + @end menu + + @include number.texi +--- gcl27-2.7.1.orig/info/gcl-tk.info ++++ gcl27-2.7.1/info/gcl-tk.info +@@ -1,4 +1,4 @@ +-This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi. ++This is gcl-tk.info, produced by makeinfo version 7.3 from gcl-tk.texi. + + This is a Texinfo GCL TK Manual + +--- gcl27-2.7.1.orig/info/gcl-tk.info-1 ++++ gcl27-2.7.1/info/gcl-tk.info-1 +@@ -1,4 +1,4 @@ +-This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi. ++This is gcl-tk.info, produced by makeinfo version 7.3 from gcl-tk.texi. + + This is a Texinfo GCL TK Manual + +--- gcl27-2.7.1.orig/info/gcl-tk.info-2 ++++ gcl27-2.7.1/info/gcl-tk.info-2 +@@ -1,4 +1,4 @@ +-This is gcl-tk.info, produced by makeinfo version 7.2 from gcl-tk.texi. ++This is gcl-tk.info, produced by makeinfo version 7.3 from gcl-tk.texi. + + This is a Texinfo GCL TK Manual + +--- gcl27-2.7.1.orig/info/gcl-tk.texi ++++ gcl27-2.7.1/info/gcl-tk.texi +@@ -28,14 +28,15 @@ END-INFO-DIR-ENTRY + @center @titlefont{GCL TK Manual} + @end titlepage + +-@node Top, General, (dir), (dir) +-@top ++@node Top ++@top Top + + @menu + * General:: + * Widgets:: + * Control:: + ++@detailmenu + --- The Detailed Node Listing --- + + General +@@ -94,6 +95,7 @@ Control + * update:: + * winfo:: + * wm:: ++@end detailmenu + @end menu + + @include general.texi +--- gcl27-2.7.1.orig/info/gcl.texi ++++ gcl27-2.7.1/info/gcl.texi +@@ -43,7 +43,8 @@ END-INFO-DIR-ENTRY + @c @defcodeindex IK + @c Keyword Index + +-@node Top, Introduction (Introduction), (dir), (dir) ++@node Top ++@top Top + + @menu + * Introduction (Introduction):: +@@ -74,6 +75,7 @@ END-INFO-DIR-ENTRY + * Glossary (Glossary):: + * Appendix:: + ++@detailmenu + --- The Detailed Node Listing --- + + Introduction +@@ -2017,6 +2019,7 @@ Removed Language Features + * Removed Variables:: + * Removed Reader Syntax:: + * Packages No Longer Required:: ++@end detailmenu + @end menu + + @c includes +--- gcl27-2.7.1.orig/info/si-defs.texi ++++ gcl27-2.7.1/info/si-defs.texi +@@ -441,7 +441,7 @@ a lisp variable indicating the TYPE whic + Package:SI + + Returns 6 values: +-@table @asis{} ++@table @asis + @item nfree + number free + @item npages +--- gcl27-2.7.1.orig/info/system.texi ++++ gcl27-2.7.1/info/system.texi +@@ -429,7 +429,7 @@ be any non-negative, non-complex number. + + @end defun + +-@node Environment Variables, Operating System Definitions, Operating System, Operating System ++@node Environment Variables, , Operating System Definitions, Operating System + @section Environment Variables + + Several environment variables affect GCL: +--- gcl27-2.7.1.orig/info/widgets.texi ++++ gcl27-2.7.1/info/widgets.texi +@@ -210,7 +210,7 @@ This command is ignored if the button's + + Tk automatically creates class bindings for buttons that give them + the following default behavior: +-@itemize @asis ++@itemize @asis{} + @item + [1] + The button activates whenever the mouse passes over it and deactivates +@@ -414,7 +414,7 @@ element of the listbox. Returns an empt + + Tk automatically creates class bindings for listboxes that give them + the following default behavior: +-@itemize @asis ++@itemize @asis{} + @item + [1] + When button 1 is pressed over a listbox, the element underneath the +@@ -2482,7 +2482,7 @@ window of the topmost pixel in the entry + + Tk automatically creates class bindings for menus that give them + the following default behavior: +-@itemize @asis ++@itemize @asis{} + @item + [1] + When the mouse cursor enters a menu, the entry underneath the mouse +@@ -2949,7 +2949,7 @@ modifying its associated variable to ref + + Tk automatically creates class bindings for check buttons that give them + the following default behavior: +-@itemize @asis ++@itemize @asis{} + @item + [1] + The check button activates whenever the mouse passes over it and deactivates +@@ -3145,7 +3145,7 @@ use ``@i{pathName }@b{:configure :state + + Tk automatically creates class bindings for menu buttons that give them + the following default behavior: +-@itemize @asis ++@itemize @asis{} + @item + [1] + A menu button activates whenever the mouse passes over it and deactivates +@@ -3560,7 +3560,7 @@ Text widgets support the standard X sele + Selection support is implemented via tags. + If the @b{exportSelection} option for the text widget is true + then the @b{sel} tag will be associated with the selection: +-@itemize @asis ++@itemize @asis{} + @item + [1] + Whenever characters are tagged with @b{sel} the text widget +@@ -3892,7 +3892,7 @@ If the @b{:pickplace}@r{ option isn't sp + appear at the top of the window. + If @b{:pickplace} is specified then the widget chooses where + @i{what} appears in the window: +-@itemize @asis ++@itemize @asis{} + @item + [1] + If @i{what} is already visible somewhere in the window then the +@@ -3920,7 +3920,7 @@ This command returns an empty string. + + Tk automatically creates class bindings for texts that give them + the following default behavior: +-@itemize @asis ++@itemize @asis{} + @item + [1] + Pressing mouse button 1 in an text positions the insertion cursor +@@ -4217,7 +4217,7 @@ at the left edge of the window. Returns + Tk automatically creates class bindings for entries that give them + the following default behavior: + +-@itemize @asis ++@itemize @asis{} + @item + [1] + Clicking mouse button 1 in an entry positions the insertion cursor +@@ -4908,7 +4908,7 @@ to this widget. + + Tk automatically creates class bindings for radio buttons that give them + the following default behavior: +-@itemize @asis ++@itemize @asis{} + @item + [1] + The radio button activates whenever the mouse passes over it and deactivates diff --git a/debian/patches/Version_2_7_2pre2 b/debian/patches/Version_2_7_2pre2 new file mode 100644 index 00000000..12d0bd82 --- /dev/null +++ b/debian/patches/Version_2_7_2pre2 @@ -0,0 +1,2242 @@ +Description: Update to git tag Version_2_7_2pre2 + Git tag update +Forwarded: not-needed +Author: Camm Maguire + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -1,4 +1,5 @@ +-export C_INCLUDE_PATH=$(srcdir)/h:$(srcdir)/gcl-tk ++C_INCLUDE_PATH:=$(srcdir)/h:$(srcdir)/gcl-tk:$(C_INCLUDE_PATH) ++export C_INCLUDE_PATH + + AM_CPPFLAGS=$(BASE_CPPFLAGS) + AM_CFLAGS=$(BASE_CFLAGS) +@@ -244,14 +245,14 @@ unixport/saved_%: | unixport/raw_% unixp + ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \ + mkdir h && \ + ln -snf ../../h/cmpinclude.h h/ && \ +- GCL_LSPSYSDIR=../$(srcdir)/unixport/ \ +- ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ \ +- < <(cat ../unixport/init_raw.lsp <(echo "(system:save-system \"../$@\")")) && \ +- rm -f ../unixport/gcl_cmpnopt.lsp ++ echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \ ++ GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ ++ ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ ++ rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue + rm -rf sb_$* + + unixport/raw_%: unixport/lib%.a +- $(CC) $(AM_LDFLAGS) -rdynamic -Wl,-z,relro $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro ++ $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ + unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp +@@ -309,7 +310,7 @@ unixport/mod_gcl: | unixport/saved_mod_ + unixport/pcl_gcl: | unixport/saved_mod_gcl + unixport/ansi_gcl: | unixport/saved_pcl_gcl + $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | % +- $(word 2,$|) < <(cat $< <(echo "(system:save-system \"$@\")")) ++ echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|) + $(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | % + ln -snf $$(basename $(word 2,$|)) $@ + +@@ -434,16 +435,16 @@ CMPINCLUDE_FILES=h/cmpincl1.h h/gclincl. + CLEANFILES+=h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h + + h/mstdint.h: +- echo "#include " | $(CC) -E -I./h/ - | $(AWK) '/fsid/ {next} {print}' >$@ ++ echo "#include " | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@ + + h/mcompdefs.h: h/compdefs.h h/new_decl.h + $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\ +- $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -P -I./h/ - |\ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - |\ + $(AWK) '/^\-\-\-$$/ {i=1;next} {if (!i) next} {gsub("\"","");print}' >$@ + + h/cmpincludea.h: $(filter-out gclincl.h,$(CMPINCLUDE_FILES)) | h/gclincl.h # FIXME! + cat $< $| $(filter-out $<,$^) | \ +- $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -I./h/ - | \ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h +@@ -454,7 +455,7 @@ h/cmpinclude.h: h/mcompdefs.h h/cmpinclu + h/new_decl.h: $(INI_FILES) + echo '#include "make-decl.h"' > foo.c + cat $^ |sed 's,DEFBFUN,DEFUN,g' >> foo.c +- $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) foo.c | sed -n -e '/#/d' -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) foo.c | sed -n -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@ + rm -f foo.c + + o/boot.h: %.h: %.ini +@@ -472,7 +473,7 @@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H + # parallel builds can only have one target accessing an intermediate file + # solved with BUILT_SOURCES + o/%.ini: o/%.c | o/grab_defs +- @$(CPP) $(AM_CPPFLAGS) -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) ++ @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) + @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ + @rm -f new_$(@F) + +@@ -483,6 +484,16 @@ o/new_init.c: $(INI_FILES) + echo '}' >> $@ + ! cat $@ | awk -F, '/DEFUN/ {print $$1,$$2}' | grep -v object || (rm $@ && false) + ++sbr_ansi-tests/random_test: ansi-tests | unixport/saved_ansi_gcl ++ [ -d $(@D) ] || (mkdir $(@D) && cp $>$@ + + h/mstdint.h: +- echo "#include " | $(CC) -E -I./h/ - | $(AWK) '/fsid/ {next} {print}' >$@ ++ echo "#include " | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@ + + h/mcompdefs.h: h/compdefs.h h/new_decl.h + $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\ +- $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -P -I./h/ - |\ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - |\ + $(AWK) '/^\-\-\-$$/ {i=1;next} {if (!i) next} {gsub("\"","");print}' >$@ + + h/cmpincludea.h: $(filter-out gclincl.h,$(CMPINCLUDE_FILES)) | h/gclincl.h # FIXME! + cat $< $| $(filter-out $<,$^) | \ +- $(CC) $(AM_CPPFLAGS) $(AM_CFLAGS) -E -I./h/ - | \ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h +@@ -4746,7 +4746,7 @@ h/cmpinclude.h: h/mcompdefs.h h/cmpinclu + h/new_decl.h: $(INI_FILES) + echo '#include "make-decl.h"' > foo.c + cat $^ |sed 's,DEFBFUN,DEFUN,g' >> foo.c +- $(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) foo.c | sed -n -e '/#/d' -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) foo.c | sed -n -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@ + rm -f foo.c + + o/boot.h: %.h: %.ini +@@ -4762,7 +4762,7 @@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H + # parallel builds can only have one target accessing an intermediate file + # solved with BUILT_SOURCES + o/%.ini: o/%.c | o/grab_defs +- @$(CPP) $(AM_CPPFLAGS) -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) ++ @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) + @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ + @rm -f new_$(@F) + +@@ -4773,6 +4773,16 @@ o/new_init.c: $(INI_FILES) + echo '}' >> $@ + ! cat $@ | awk -F, '/DEFUN/ {print $$1,$$2}' | grep -v object || (rm $@ && false) + ++sbr_ansi-tests/random_test: ansi-tests | unixport/saved_ansi_gcl ++ [ -d $(@D) ] || (mkdir $(@D) && cp $ m 0)) + do (si::fwrite tem 0 m st-a)))))) +- +-#+dos +-(progn +-(defun directory (x &aux ans) +- (let* ((pa (pathname x)) +- (temp "XXDIR") +- tem +- (name (pathname-name pa))) +- (setq pa (make-pathname :directory (pathname-directory pa) +- :name (or (pathname-name pa) :wild) +- :type (pathname-type pa))) +- (setq name (namestring pa)) +- (safe-system (format nil "ls -d ~a > ~a" name temp)) +- (with-open-file (st temp) +- (loop (setq tem (read-line st nil nil)) +- (if (and tem (setq tem (probe-file tem))) +- (push tem ans) (return)))) +- ans)) +- +- +-(defun user-homedir-pathname () +- (or (si::getenv "HOME") "/")) +- +-) +- + ; + ; These functions are added to build custom images requiring + ; the loading of binary objects on systems relocating with dlopen. +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -664,7 +664,6 @@ BASE_CFLAGS + NIFLAGS + FINAL_CFLAGS + BASE_LDFLAGS +-ALLOCA + EXT + TCL_LIB_SPEC + TK_LIB_SPEC +@@ -2189,65 +2188,6 @@ printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_check_decl +- +-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +-# ------------------------------------------- +-# Tests whether TYPE exists after having included INCLUDES, setting cache +-# variable VAR accordingly. +-ac_fn_c_check_type () +-{ +- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +-printf %s "checking for $2... " >&6; } +-if eval test \${$3+y} +-then : +- printf %s "(cached) " >&6 +-else case e in #( +- e) eval "$3=no" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-$4 +-int +-main (void) +-{ +-if (sizeof ($2)) +- return 0; +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO" +-then : +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-$4 +-int +-main (void) +-{ +-if (sizeof (($2))) +- return 0; +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO" +-then : +- +-else case e in #( +- e) eval "$3=yes" ;; +-esac +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +-esac +-fi +-eval ac_res=\$$3 +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-printf "%s\n" "$ac_res" >&6; } +- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno +- +-} # ac_fn_c_check_type + ac_configure_args_raw= + for ac_arg + do +@@ -7155,9 +7095,10 @@ add_args_to_cflags -fsigned-char -pipe + -std=gnu17 \ + -Wall \ + -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \ +- -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++ -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ ++ -fbracket-depth=512 + +-add_args_to_ldflags -no-pie # -Wl,-z,lazy ++add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5 + printf %s "checking for inline semantics... " >&6; } +@@ -9600,10 +9541,11 @@ else case e in #( + #include + int + main(int argc,char **argv,char **envp) { +- FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r"); ++ FILE *fp = fopen("conftest1","w"),*f; + unsigned long i,j; + char b[4096]; + i=(unsigned long)alloca(sizeof(void *)); ++ f=fopen("/proc/self/maps","r"); + for (j=0;j + int + main(int argc,char **argv,char **envp) { +- FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r"); ++ FILE *fp = fopen("conftest1","w"),*f; + unsigned long i,j; + char b[4096],*stack_map_base; + #include "$srcdir/h/cstack.h" + i=(unsigned long)alloca(sizeof(void *)); ++ f=fopen("/proc/self/maps","r"); + for (j=0;j&5 + printf "%s\n" "not found" >&6; } + fi +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking output_mach" >&5 +-printf %s "checking output_mach... " >&6; } +- output_mach=`cat gcl.script |grep OUTPUT_ARCH|head -n 1|sed 's,.*(\(.*\)).*,\1:,1'|cut -f2 -d:|tr '-' '_'|tr -d '.'`; + +- if test "$output_mach" = "common" ; then #FIXME +- output_mach="" +- fi +- defaulted="" +- if test "$output_mach" = "" ; then +- if test "$output_arch" = "i386" ; then +- output_mach="i386_i386"; +- defaulted="(defaulted)" +- fi +- fi +- if test "$output_mach" != "" ; then +- +-printf "%s\n" "#define OUTPUT_MACH bfd_mach_${output_mach}" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $defaulted bfd_mach_${output_mach}" >&5 +-printf "%s\n" "$defaulted bfd_mach_${output_mach}" >&6; } +- else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-printf "%s\n" "not found" >&6; } +- fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying to adjust text start" >&5 + printf "%s\n" "$as_me: trying to adjust text start" >&6;} +@@ -11372,6 +11293,75 @@ if test "x$ac_cv_header_dis_asm_h" = xye + then : + printf "%s\n" "#define HAVE_DIS_ASM_H 1" >>confdefs.h + MLIBS=$LIBS ++ ++# ac_fn_c_check_type LINENO TYPE VAR INCLUDES ++# ------------------------------------------- ++# Tests whether TYPE exists after having included INCLUDES, setting cache ++# variable VAR accordingly. ++ac_fn_c_check_type () ++{ ++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++printf %s "checking for $2... " >&6; } ++if eval test \${$3+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) eval "$3=no" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main (void) ++{ ++if (sizeof ($2)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO" ++then : ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$4 ++int ++main (void) ++{ ++if (sizeof (($2))) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO" ++then : ++ ++else case e in #( ++ e) eval "$3=yes" ;; ++esac ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; ++esac ++fi ++eval ac_res=\$$3 ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++printf "%s\n" "$ac_res" >&6; } ++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ++ ++} # ac_fn_c_check_type ++ac_fn_c_check_type "$LINENO" "fprintf_styled_ftype" "ac_cv_type_fprintf_styled_ftype" "#include ++" ++if test "x$ac_cv_type_fprintf_styled_ftype" = xyes ++then : ++ ++printf "%s\n" "#define HAVE_FPRINTF_STYLED_FTYPE 1" >>confdefs.h ++ ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for init_disassemble_info in -lopcodes" >&5 + printf %s "checking for init_disassemble_info in -lopcodes... " >&6; } + if test ${ac_cv_lib_opcodes_init_disassemble_info+y} +@@ -11670,171 +11660,6 @@ then : + + fi + +-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +-if test "x$ac_cv_type_size_t" = xyes +-then : +- +-else case e in #( +- e) +-printf "%s\n" "#define size_t unsigned int" >>confdefs.h +- ;; +-esac +-fi +- +-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +-# for constant arguments. Useless! +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 +-printf %s "checking for working alloca.h... " >&6; } +-if test ${ac_cv_working_alloca_h+y} +-then : +- printf %s "(cached) " >&6 +-else case e in #( +- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-int +-main (void) +-{ +-char *p = (char *) alloca (2 * sizeof (int)); +- if (p) return 0; +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO" +-then : +- ac_cv_working_alloca_h=yes +-else case e in #( +- e) ac_cv_working_alloca_h=no ;; +-esac +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.beam \ +- conftest$ac_exeext conftest.$ac_ext ;; +-esac +-fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 +-printf "%s\n" "$ac_cv_working_alloca_h" >&6; } +-if test $ac_cv_working_alloca_h = yes; then +- +-printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h +- +-fi +- +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 +-printf %s "checking for alloca... " >&6; } +-if test ${ac_cv_func_alloca_works+y} +-then : +- printf %s "(cached) " >&6 +-else case e in #( +- e) ac_cv_func_alloca_works=$ac_cv_working_alloca_h +-if test "$ac_cv_func_alloca_works" != yes +-then : +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +-#include +-#ifndef alloca +-# ifdef __GNUC__ +-# define alloca __builtin_alloca +-# elif defined _MSC_VER +-# include +-# define alloca _alloca +-# else +-# ifdef __cplusplus +-extern "C" +-# endif +-void *alloca (size_t); +-# endif +-#endif +- +-int +-main (void) +-{ +-char *p = (char *) alloca (1); +- if (p) return 0; +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO" +-then : +- ac_cv_func_alloca_works=yes +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.beam \ +- conftest$ac_exeext conftest.$ac_ext +-fi ;; +-esac +-fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 +-printf "%s\n" "$ac_cv_func_alloca_works" >&6; } +- +-if test $ac_cv_func_alloca_works = yes; then +- +-printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h +- +-else +- # The SVR3 libPW and SVR4 libucb both contain incompatible functions +-# that cause trouble. Some versions do not even contain alloca or +-# contain a buggy version. If you still want to use their alloca, +-# use ar to extract alloca.o from them instead of compiling alloca.c. +- +-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext +- +-printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h +- +- +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 +-printf %s "checking stack direction for C alloca... " >&6; } +-if test ${ac_cv_c_stack_direction+y} +-then : +- printf %s "(cached) " >&6 +-else case e in #( +- e) if test "$cross_compiling" = yes +-then : +- ac_cv_c_stack_direction=0 +-else case e in #( +- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-$ac_includes_default +-int +-find_stack_direction (int *addr, int depth) +-{ +- int dir, dummy = 0; +- if (! addr) +- addr = &dummy; +- *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; +- dir = depth ? find_stack_direction (addr, depth - 1) : 0; +- return dir + dummy; +-} +- +-int +-main (int argc, char **argv) +-{ +- return find_stack_direction (0, argc + !argv + 20) < 0; +-} +-_ACEOF +-if ac_fn_c_try_run "$LINENO" +-then : +- ac_cv_c_stack_direction=1 +-else case e in #( +- e) ac_cv_c_stack_direction=-1 ;; +-esac +-fi +-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +- conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +-esac +-fi +- ;; +-esac +-fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 +-printf "%s\n" "$ac_cv_c_stack_direction" >&6; } +-printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h +- +- +-fi +- +- + + #LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`" + LDFLAGS="`echo $GPL_FLAG $LDFLAGS`" +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -232,9 +232,10 @@ add_args_to_cflags -fsigned-char -pipe + -std=gnu17 \ + -Wall \ + -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \ +- -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++ -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ ++ -fbracket-depth=512 + +-add_args_to_ldflags -no-pie # -Wl,-z,lazy ++add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy + + AC_MSG_CHECKING([for inline semantics]) + AC_COMPILE_IFELSE( +@@ -1039,10 +1040,11 @@ if test $cstack_direction -eq 1 ; then + #include + int + main(int argc,char **argv,char **envp) { +- FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r"); ++ FILE *fp = fopen("conftest1","w"),*f; + unsigned long i,j; + char b[4096]; + i=(unsigned long)alloca(sizeof(void *)); ++ f=fopen("/proc/self/maps","r"); + for (j=0;j + int + main(int argc,char **argv,char **envp) { +- FILE *fp = fopen("conftest1","w"),*f=fopen("/proc/self/maps","r"); ++ FILE *fp = fopen("conftest1","w"),*f; + unsigned long i,j; + char b[4096],*stack_map_base; + #include "$srcdir/h/cstack.h" + i=(unsigned long)alloca(sizeof(void *)); ++ f=fopen("/proc/self/maps","r"); + for (j=0;j]) + AC_CHECK_LIB(opcodes,init_disassemble_info) + AC_CHECK_LIB(dl,dlopen,#opcodes changes too quickly to link directly + AC_CHECK_FUNCS(print_insn_i386,LIBS="$MLIBS -ldl"))) +@@ -1841,8 +1848,6 @@ AC_CONFIG_FILES([bin/gcl]) + + AC_CHECK_HEADERS(sys/mman.h,AC_CHECK_FUNCS(mprotect)) + AC_CHECK_HEADERS(alloca.h) +-AC_FUNC_ALLOCA +- + + #LDFLAGS="`echo $GPL_FLAG $LDFLAGS | sed 's,gcl.script,../unixport/gcl.script,g'`" + LDFLAGS="`echo $GPL_FLAG $LDFLAGS`" +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_2ore1" ++"Version_2_7_2ore2" + +--- /dev/null ++++ gcl27-2.7.1/git_touch +@@ -0,0 +1,7 @@ ++#!/bin/bash ++ ++touch aclocal.m4 \ ++ configure.ac gcl-tk/gcltksrv.in bin/gcl.in unixport/init_raw.lsp.in h/gclincl.h.in \ ++ configure \ ++ Makefile.am Makefile.in \ ++ info/gcl.info info/gcl-si.info info/gcl-tk.info info/gcl-dwdoc.info +--- gcl27-2.7.1.orig/h/386-linux.h ++++ gcl27-2.7.1/h/386-linux.h +@@ -9,3 +9,5 @@ + #define SGC + + #define RELOC_H "elf32_i386_reloc.h" ++ ++#define OUTPUT_MACH bfd_mach_i386_i386 +--- gcl27-2.7.1.orig/h/386-macosx.h ++++ gcl27-2.7.1/h/386-macosx.h +@@ -21,23 +21,11 @@ + #undef HAVE_ELF + + +-/** sbrk(2) emulation */ +- + /* Alternatively, we could use the global variable vm_page_size. */ + #define PAGEWIDTH 12 + +-/* The following value determines the running process heap size. */ +-/* #define BIG_HEAP_SIZE 0x50000000 */ +- +-extern char *mach_mapstart; +-extern char *mach_maplimit; +-extern char *mach_brkpt; +- +-extern char *get_dbegin (); + + #include /* to get sbrk defined */ +-extern void *my_sbrk(long incr); +-#define sbrk my_sbrk + + + /** (si::save-system "...") a.k.a. unexec implementation */ +@@ -101,36 +89,7 @@ do { + sigaction (SIGSEGV, &sact, 0); \ + } while (0); + +-/* si_addr not containing the faulting address is a bug in Darwin. +- Work around this by looking at the dar field of the exception state. */ + #define GET_FAULT_ADDR(sig,code,sv,a) ((siginfo_t *)code)->si_addr +-/* #define GET_FAULT_ADDR(sig,code,scp,addr) ((char *) (((ucontext_t *) scp)->uc_mcontext->es.dar)) */ +- +-/* +-#include +-#include +-#include +-#include +- +-void handler (int sig, siginfo_t *info, void *scp) +-{ +- ucontext_t *uc = (ucontext_t *)scp; +- fprintf(stderr, "addr = 0x%08lx\n", uc->uc_mcontext->es.dar); +- _exit(99); +-} +- +-int main(void) +-{ +- struct sigaction sact; +- int ret; +- +- sigfillset(&(sact.sa_mask)); +- sact.sa_flags = SA_SIGINFO; +- sact.sa_sigaction = (void (*)())handler; +- ret = sigaction (SIGBUS, &sact, 0); +- return *(int *)0x43; +-} +-*/ + + + /** Misc stuff */ +@@ -199,3 +158,7 @@ if (realpath (buf, fub) == 0) { + #include /*PATH_MAX MAXPATHLEN*/ + #undef MIN + #undef MAX ++ ++#undef sbrk ++#define sbrk msbrk ++#define INITIALIZE_BRK msbrk_init(); +--- gcl27-2.7.1.orig/h/aarch64-linux.h ++++ gcl27-2.7.1/h/aarch64-linux.h +@@ -5,3 +5,5 @@ + + #define NEED_STACK_CHK_GUARD + #define SGC ++ ++#define OUTPUT_MACH bfd_mach_aarch64 +--- gcl27-2.7.1.orig/h/alpha-linux.h ++++ gcl27-2.7.1/h/alpha-linux.h +@@ -10,3 +10,5 @@ + + /*FIXME probe broken in recent kernels, no access*/ + /* #define DEFINED_REAL_MAXPAGE (1UL<<18) /\*FIXME brk probe broken*\/ */ ++ ++#define OUTPUT_MACH bfd_mach_alpha_ev6 +--- gcl27-2.7.1.orig/h/amd64-linux.h ++++ gcl27-2.7.1/h/amd64-linux.h +@@ -14,3 +14,5 @@ + #define MAX_CODE_ADDRESS (1L<<31)/*large memory model broken gcc 4.8*/ + #define MAX_DEFAULT_MEMORY_MODEL_CODE_ADDRESS (1UL<<31) + #define LARGE_MEMORY_MODEL /*working -mcmodel=large giving unrestricted code load addresses*/ ++ ++#define OUTPUT_MACH bfd_mach_x86_64 +--- gcl27-2.7.1.orig/h/arm-linux.h ++++ gcl27-2.7.1/h/arm-linux.h +@@ -6,3 +6,5 @@ + #define SPECIAL_RELOC_H "elf32_arm_reloc_special.h" + + #define NEED_STACK_CHK_GUARD ++ ++#define OUTPUT_MACH bfd_mach_arm_9 +--- gcl27-2.7.1.orig/h/armhf-linux.h ++++ gcl27-2.7.1/h/armhf-linux.h +@@ -6,3 +6,5 @@ + #define SPECIAL_RELOC_H "elf32_armhf_reloc_special.h" + + #define NEED_STACK_CHK_GUARD ++ ++#define OUTPUT_MACH bfd_mach_arm_9 +--- gcl27-2.7.1.orig/h/cstack.h ++++ gcl27-2.7.1/h/cstack.h +@@ -34,17 +34,22 @@ + { + void *p,*p1,*b,*s; + int a,f=MAP_FIXED|MAP_PRIVATE|MAP_ANON|MAP_STACK; ++ int ss= ++#ifdef CHECK_FOR_QEMU ++ qemu_p() ? FIXED_STACK : ++#endif ++ SS; + + p=alloca(1); + p1=alloca(1); +- b=CTOP-(p1

CTOP || p < b) { +- if (mmap(b,SS,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) { ++ if (mmap(b,ss,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) { + stack_map_base=b; + asm volatile (SET_STACK_POINTER::"r" (s):"memory"); + if (p1>p) +--- gcl27-2.7.1.orig/h/gclincl.h.in ++++ gcl27-2.7.1/h/gclincl.h.in +@@ -12,9 +12,6 @@ + /* whether C stack grows up or down */ + #undef CSTACK_DIRECTION + +-/* Define to 1 if using 'alloca.c'. */ +-#undef C_ALLOCA +- + /* debug safecdr code */ + #undef DEBUG_SAFE_CDR + +@@ -27,10 +24,7 @@ + /* using gmp */ + #undef GMP + +-/* Define to 1 if you have 'alloca', as a function or macro. */ +-#undef HAVE_ALLOCA +- +-/* Define to 1 if works. */ ++/* Define to 1 if you have the header file. */ + #undef HAVE_ALLOCA_H + + /* have __builtin__clear_cache instruction */ +@@ -72,6 +66,9 @@ + /* Define to 1 if you have the header file. */ + #undef HAVE_FLOAT_H + ++/* Define to 1 if the system has the type 'fprintf_styled_ftype'. */ ++#undef HAVE_FPRINTF_STYLED_FTYPE ++ + /* Define to 1 if you have the 'getcwd' function. */ + #undef HAVE_GETCWD + +@@ -261,9 +258,6 @@ + /* bfd output arch */ + #undef OUTPUT_ARCH + +-/* bfd output mach */ +-#undef OUTPUT_MACH +- + /* Name of package */ + #undef PACKAGE + +@@ -321,14 +315,6 @@ + /* The size of 'short', as computed by sizeof. */ + #undef SIZEOF_SHORT + +-/* If using the C implementation of alloca, define if you know the +- direction of stack growth for your system; otherwise it will be +- automatically deduced at runtime. +- STACK_DIRECTION > 0 => grows toward higher addresses +- STACK_DIRECTION < 0 => grows toward lower addresses +- STACK_DIRECTION = 0 => direction of growth unknown */ +-#undef STACK_DIRECTION +- + /* staticly linked images */ + #undef STATIC_LINKING + +@@ -461,6 +447,3 @@ + + /* short gmp3 limbs */ + #undef __SHORT_LIMB +- +-/* Define as 'unsigned int' if doesn't define. */ +-#undef size_t +--- gcl27-2.7.1.orig/h/hppa-linux.h ++++ gcl27-2.7.1/h/hppa-linux.h +@@ -17,3 +17,5 @@ + + #define RELOC_H "elf32_hppa_reloc.h" + #define SPECIAL_RELOC_H "elf32_hppa_reloc_special.h" ++ ++#define OUTPUT_MACH bfd_mach_hppa11 +--- gcl27-2.7.1.orig/h/loongarch64-linux.h ++++ gcl27-2.7.1/h/loongarch64-linux.h +@@ -10,3 +10,5 @@ + /* #define MAX_CODE_ADDRESS (1L<<31)/\*large memory model broken gcc 4.8*\/ */ + + #define NEED_STACK_CHK_GUARD ++ ++#define OUTPUT_MACH bfd_mach_loongarch64 +--- gcl27-2.7.1.orig/h/m68k-linux.h ++++ gcl27-2.7.1/h/m68k-linux.h +@@ -56,3 +56,5 @@ int cacheflush(void *,int,int,int); + #define NEED_STACK_CHK_GUARD + + /* #define DEFINED_REAL_MAXPAGE (1UL<<18) /\*FIXME brk probe broken*\/ */ ++ ++#define OUTPUT_MACH bfd_mach_m68060 +--- gcl27-2.7.1.orig/h/mipsel-linux.h ++++ gcl27-2.7.1/h/mipsel-linux.h +@@ -1,3 +1,5 @@ + #include "linux.h" + + #define SGC ++ ++#define OUTPUT_MACH bfd_mach_mipsisa64r6 +--- gcl27-2.7.1.orig/h/powerpc-linux.h ++++ gcl27-2.7.1/h/powerpc-linux.h +@@ -11,6 +11,7 @@ + + #if SIZEOF_LONG == 4 + #define RELOC_H "elf32_ppc_reloc.h" ++#define OUTPUT_MACH bfd_mach_ppc + #else + #ifdef WORDS_BIGENDIAN + #define RELOC_H "elf64_ppc_reloc.h" +@@ -20,5 +21,6 @@ + #define RELOC_H "elf64_ppcle_reloc.h" + #define SPECIAL_RELOC_H "elf64_ppcle_reloc_special.h" + #endif ++#define OUTPUT_MACH bfd_mach_ppc64 + #define C_GC_OFFSET 4 + #endif +--- gcl27-2.7.1.orig/h/riscv64-linux.h ++++ gcl27-2.7.1/h/riscv64-linux.h +@@ -9,3 +9,5 @@ + /* #define MAX_CODE_ADDRESS (1L<<31)/\*large memory model broken gcc 4.8*\/ */ + + #define NEED_STACK_CHK_GUARD ++ ++#define OUTPUT_MACH bfd_mach_riscv64 +--- gcl27-2.7.1.orig/h/s390-linux.h ++++ gcl27-2.7.1/h/s390-linux.h +@@ -6,6 +6,9 @@ + #define C_GC_OFFSET 4 + #define RELOC_H "elf64_s390_reloc.h" + #define SPECIAL_RELOC_H "elf64_sparc_reloc_special.h" ++#define OUTPUT_MACH #define bfd_mach_s390_64 + #else + #define RELOC_H "elf32_s390_reloc.h" ++#define OUTPUT_MACH #define bfd_mach_s390_32 + #endif ++ +--- gcl27-2.7.1.orig/h/sh4-linux.h ++++ gcl27-2.7.1/h/sh4-linux.h +@@ -21,3 +21,5 @@ + #define NEED_STACK_CHK_GUARD + + /* #define DEFINED_REAL_MAXPAGE (1UL<<18) /\*FIXME brk probe broken*\/ */ ++ ++#define OUTPUT_MACH bfd_mach_sh4 +--- gcl27-2.7.1.orig/h/sparc-linux.h ++++ gcl27-2.7.1/h/sparc-linux.h +@@ -18,3 +18,5 @@ void unwind() __attribute__((optimize("O + /* #if SIZEOF_LONG == 8 */ + /* #define C_GC_OFFSET 4 */ + /* #endif */ ++ ++#define OUTPUT_MACH bfd_mach_sparc_v9 +--- gcl27-2.7.1.orig/info/character.texi ++++ gcl27-2.7.1/info/character.texi +@@ -40,14 +40,14 @@ This is faster than CHAR. + @end defun + + @defvr {Constant} CHAR-SUPER-BIT +-Package:LISP ++Package:SI + The bit that indicates a super character. + + + @end defvr + + @defvr {Constant} CHAR-FONT-LIMIT +-Package:LISP ++Package:SI + The upper exclusive bound on values produced by CHAR-FONT. + + +@@ -63,7 +63,7 @@ If not, simply returns CHAR. + @end defun + + @defun STRING-CHAR-P (char) +-Package:LISP ++Package:SI + + Returns T if CHAR can be stored in a string. In GCL, this function always + returns T since any character in GCL can be stored in a string. +@@ -113,7 +113,7 @@ otherwise. + @end defun + + @defvr {Constant} CHAR-HYPER-BIT +-Package:LISP ++Package:SI + The bit that indicates a hyper character. + + +@@ -137,7 +137,7 @@ Returns the code attribute of CHAR. + @end defun + + @defvr {Constant} CHAR-CONTROL-BIT +-Package:LISP ++Package:SI + The bit that indicates a control character. + + +@@ -154,7 +154,7 @@ is used. + @end defun + + @defun CHAR-FONT (char) +-Package:LISP ++Package:SI + + Returns the font attribute of CHAR. + +@@ -179,7 +179,7 @@ otherwise. + @end defun + + @defvr {Constant} CHAR-META-BIT +-Package:LISP ++Package:SI + The bit that indicates a meta character. + + +@@ -204,7 +204,7 @@ Upper case character and its lower case + @end defun + + @defvr {Constant} CHAR-BITS-LIMIT +-Package:LISP ++Package:SI + The upper exclusive bound on values produced by CHAR-BITS. + + +@@ -243,7 +243,7 @@ Returns T if CHAR is an upper-case chara + @end defun + + @defun CHAR-BIT (char name) +-Package:LISP ++Package:SI + + Returns T if the named bit is on in the character CHAR; NIL otherwise. + In GCL, this function always returns NIL. +@@ -252,7 +252,7 @@ In GCL, this function always returns NIL + @end defun + + @defun MAKE-CHAR (char &optional (bits 0) (font 0)) +-Package:LISP ++Package:SI + + Returns a character object with the same code attribute as CHAR and with + the specified BITS and FONT attributes. +@@ -350,7 +350,7 @@ Returns T if CHAR is either numeric or a + @end defun + + @defun CHAR-BITS (char) +-Package:LISP ++Package:SI + + Returns the bits attribute (which is always 0 in GCL) of CHAR. + +@@ -367,7 +367,7 @@ Returns NIL if no such character exists. + @end defun + + @defun SET-CHAR-BIT (char name newvalue) +-Package:LISP ++Package:SI + + Returns a character just like CHAR except that the named bit is set or + cleared, according to whether NEWVALUE is non-NIL or NIL. This function +--- gcl27-2.7.1.orig/info/compile.texi ++++ gcl27-2.7.1/info/compile.texi +@@ -20,7 +20,7 @@ NIL, these files are automatically delet + @end defun + + @defun LINK (files image &optional post extra-libs (run-user-init t) &aux raw init) +-Package:LISP ++Package:COMPILER + + On systems where dlopen is used for relocations, one cannot make custom + images containing loaded binary object files simply by loading the files +@@ -242,24 +242,6 @@ their lisp names. Please see also the P + + @end defun + +- +-@defun GPROF-SET (begin end) +-Package:SYSTEM +- +-GCL now has preliminary support for profiling with gprof, an +-externally supplied profiling tool at the C level which typically +-accompanies gcc. Support must be enabled at compile time with +---enable-gprof. This function sets the address range used by +-GPROF-START in specifying the section of the running program which is +-to be profiled. All subsequent calls to GPROF-START will use this new +-address range. By default, the range is set to begin at the starting +-address of the .text section, and to end at the current end of the +-running core. These default values can be restored by calling +-GPROF-SET with both argments set to 0. +- +-@end defun +- +- + @defvar *DEFAULT-SYSTEM-P* + Package:COMPILER + Specifies the default setting of :SYSTEM-P used by COMPILE. Defaults to NIL. +--- gcl27-2.7.1.orig/info/compiler-defs.texi ++++ gcl27-2.7.1/info/compiler-defs.texi +@@ -102,7 +102,7 @@ or + @end example + + @end defun +-@defun COMPILER-DEFAULT-TYPE (pathname) ++@defun *COMPILER-DEFAULT-TYPE* (pathname) + Package:COMPILER + + Allows you to set the default file extension for compiler source files. +@@ -150,13 +150,6 @@ NIL + + + @end defun +-@defun COMPILER-RESET-TYPE () +-Package:COMPILER +- +-Resets the default compiler input file extension to the GCL historical +-value of #''.lsp''. +- +-@end defun + @defvar *CC* + Package:COMPILER + Has value a string which controls which C compiler is used by GCL. +--- gcl27-2.7.1.orig/info/form.texi ++++ gcl27-2.7.1/info/form.texi +@@ -9,7 +9,7 @@ List of all the lambda-list keywords use + @end defvr + + @defun GET-SETF-METHOD (form) +-Package:LISP ++Package:SI + + Returns the five values (or five 'gangs') constituting the SETF method for + FORM. See the doc of DEFINE-SETF-METHOD for the meanings of the gangs. It +@@ -345,7 +345,7 @@ Also, see the function doc of PPRINT for + @end deffn + + @defvar *EVALHOOK* +-Package:LISP ++Package:SI + If *EVALHOOK* is not NIL, its value must be a function that can receive + two arguments: a form to evaluate and an environment. This function does + the evaluation instead of EVAL. +@@ -521,7 +521,7 @@ a function. Actually, however, there is + @end defvr + + @defun APPLYHOOK (function args evalhookfn applyhookfn &optional (env nil)) +-Package:LISP ++Package:SI + + Applies FUNCTION to ARGS, with *EVALHOOK* bound to EVALHOOKFN and with + *APPLYHOOK* bound to APPLYHOOKFN. Ignores the hook function once, for the +@@ -682,7 +682,7 @@ TEST. Returns NIL, if all TESTs evaluat + @end deffn + + @defun GET-SETF-METHOD-MULTIPLE-VALUE (form) +-Package:LISP ++Package:SI + Returns the five values (or five 'gangs') + constituting the SETF method for FORM. See the doc of + DEFINE-SETF-METHOD for the meanings of the gangs. The third value +@@ -769,7 +769,7 @@ returns the value(s) of the last FORM. + @end deffn + + @deffn {Macro} DEFINE-SETF-METHOD +-Package:LISP ++Package:SI + + Syntax: + @example +@@ -799,7 +799,7 @@ by (documentation 'NAME 'setf). + @end deffn + + @deffn {Special Form} COMPILER-LET +-Package:LISP ++Package:SI + + Syntax: + @example +@@ -891,7 +891,7 @@ Creates a NIL block, binds VARs in paral + @end deffn + + @defvar *APPLYHOOK* +-Package:LISP ++Package:SI + Used to substitute another function for the implicit APPLY normally done + within EVAL. If *APPLYHOOK* is not NIL, its value must be a function + which takes three arguments: a function to be applied, a list of arguments, +@@ -1032,7 +1032,7 @@ form. + @end deffn + + @defun EVALHOOK (form evalhookfn applyhookfn &optional (env nil)) +-Package:LISP ++Package:SI + + Evaluates FORM with *EVALHOOK* bound to EVALHOOKFN and *APPLYHOOK* bound + to APPLYHOOKFN. Ignores these hooks once, for the top-level evaluation +--- gcl27-2.7.1.orig/info/internal.texi ++++ gcl27-2.7.1/info/internal.texi +@@ -2,7 +2,7 @@ + @chapter GCL Specific + + @defun SYSTEM (string) +-Package:LISP ++Package:SI + + GCL specific: Executes a Shell command as if STRING is an input to the + Shell. Not all versions of GCL support this function. At least on +@@ -49,16 +49,8 @@ on which GCL is currently running. + + @end defun + +-@defun BY () +-Package:LISP +- +-GCL specific: Exits from GCL. +- +- +-@end defun +- + @deffn {Macro} DEFCFUN +-Package:LISP ++Package:SI + + Syntax: + @example +@@ -126,7 +118,7 @@ C-type: + @end deffn + + @deffn {Macro} CLINES +-Package:LISP ++Package:SI + + Syntax: + @example +@@ -148,7 +140,7 @@ specified in the environment. + @end defun + + @defun ALLOCATE (type number &optional (really-allocate nil)) +-Package:LISP ++Package:SI + + GCL specific: Sets the maximum number of pages for the type class of the + GCL implementation type TYPE to NUMBER. If REALLY-ALLOCATE is given a +@@ -159,7 +151,7 @@ immediately. + @end defun + + @defun GBC (x) +-Package:LISP ++Package:SI + + GCL specific: Invokes the garbage collector (GC) with the collection level + specified by X. NIL as the argument causes GC to collect cells only. T as +@@ -169,7 +161,7 @@ the argument causes GC to collect everyt + @end defun + + @defun SAVE (pathname) +-Package:LISP ++Package:SI + + GCL specific: Saves the current GCL core image into a program file specified + by PATHNAME. This function depends on the version of GCL. The function +@@ -180,7 +172,7 @@ currently loaded .o files. + @end defun + + @defun HELP* (string &optional (package 'lisp)) +-Package:LISP ++Package:USER + + GCL specific: Prints the documentation associated with those symbols in the + specified package whose print names contain STRING as substring. STRING may +@@ -191,7 +183,7 @@ is NIL, then all packages are searched. + @end defun + + @deffn {Macro} DEFLA +-Package:LISP ++Package:SI + + Syntax: + @example +@@ -214,7 +206,7 @@ NIL otherwise. See the doc of DECLARE f + @end defun + + @deffn {Macro} DEFENTRY +-Package:LISP ++Package:SI + + Syntax: + @example +@@ -282,7 +274,7 @@ implementation dependent results. + @end defun + + @defun BYE ( &optional (exit-status 0)) +-Package:LISP ++Package:SI + + GCL specific: Exits from GCL with exit-status. + +@@ -290,7 +282,7 @@ GCL specific: Exits from GCL with exit-s + @end defun + + @defun USE-FAST-LINKS (turn-on) +-Package:LISP ++Package:SI + + GCL specific: If TURN-ON is not nil, the fast link mechanism is enabled, + so that ordinary function calls will not appear in the invocation stack, +--- gcl27-2.7.1.orig/info/number.texi ++++ gcl27-2.7.1/info/number.texi +@@ -86,7 +86,7 @@ BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or + @end defun + + @defun INT-CHAR (integer) +-Package:LISP ++Package:SI + + Performs the inverse of CHAR-INT. Equivalent to CODE-CHAR in GCL. + +--- gcl27-2.7.1.orig/info/si-defs.texi ++++ gcl27-2.7.1/info/si-defs.texi +@@ -41,14 +41,6 @@ calling this the defstruct should not be + + + @end defun +-@defun MAXIMUM-ALLOCATABLE-PAGES (type) +-Package:SI +- +-GCL specific: Returns the current maximum number of pages for the type class +-of the GCL implementation type TYPE. +- +- +-@end defun + @defun ALLOCATED-RELOCATABLE-PAGES () + Package:SI + +@@ -64,14 +56,6 @@ Give SYMBOL the VALUE on INDICATOR prope + + + @end defun +-@defun ALLOCATED-PAGES (type) +-Package:SI +- +-GCL specific: Returns the number of pages currently allocated for the type +-class of the GCL implementation type TYPE. +- +- +-@end defun + @defun ALLOCATE-RELOCATABLE-PAGES (number) + Package:SI + +@@ -420,18 +404,6 @@ type. + + + @end defun +-@defun CATCH-BAD-SIGNALS () +-Package:SI +- +-GCL/BSD specific: Installs a signal catcher for bad signals: +- SIGILL, SIGIOT, SIGEMT, SIGBUS, SIGSEGV, SIGSYS. +-The signal catcher, upon catching the signal, signals an error (and enter +-the break-level). Since the internal memory of GCL may be broken, the user +-should check the signal and exit from GCL if necessary. When the signal +-is caught during garbage collection, GCL terminates immediately. +- +- +-@end defun + @defun RESET-STACK-LIMITS () + Package:SI + +@@ -450,7 +422,7 @@ should be set NIL. + + + @end defvar +-@defvar *GBC-NOTIFY* ++@defvar *NOTIFY-GBC* + Package:SI + GCL specific: If the value is non-NIL, the garbage + collector prints a very brief one line message about the area causing the collection, +@@ -465,7 +437,7 @@ a lisp variable indicating the TYPE whic + + + @end defvar +-@deffn {Funcition} ALLOCATED (type) ++@deffn {Function} ALLOCATED (type) + Package:SI + + Returns 6 values: +@@ -572,13 +544,6 @@ resetting io streams. It would not be + + + @end defun +-@defun UNCATCH-BAD-SIGNALS () +-Package:SI +- +-GCL/BSD specific: Undoes the effect of SI:CATCH-BAD-SIGNALS. +- +- +-@end defun + @defun VS (i) + Package:SI + +@@ -601,13 +566,6 @@ the GCL process. + + + @end defun +-@defvar *DEFAULT-TIME-ZONE* +-Package:SI +-GCL specific: Holds the default time zone. The initial value of SI:*DEFAULT- +-TIME-ZONE* is 6 (the time zone of Austin, Texas). +- +- +-@end defvar + @defun GETENV (string) + Package:SI + +@@ -660,47 +618,36 @@ stack. + + + @end defun +-@defun WRITE-DEBUG-SYMBOLS (start file &key (main-file "/usr/local/schelter/xgcl/unixport/raw_gcl") (output-file "debug-symbols.o" )) +-Package:SI +- +-Write out a file of debug-symbols using address START as the place +-where FILE will be loaded into the running executable MAIN-FILE. The +-last is a keyword argument. +- ++@c @defun PROF (x y) ++@c Package:SI + ++@c These functions in the SI package are GCL specific, and allow monitoring ++@c the run time of functions loaded into GCL, as well as the basic functions. ++@c Sample Usage: ++@c (si::set-up-profile 1000000) (si::prof 0 90) ++@c run program ++@c (si::prof 0 0) ;; turn off profile ++@c (si::display-prof) ++@c (si::clear-profile) ++@c (si::prof 0 90) ;; start profile again ++@c run program ++@c .. ++@c Profile can be stopped with (si::prof 0 0) and restarted with (si::prof 0 90) ++@c The START-ADDRESS will correspond to the beginning of the profile array, and ++@c the SCALE will mean that 256 bytes of code correspond to SCALE bytes in the ++@c profile array. ++ ++@c Thus if the profile array is 1,000,000 bytes long and the code segment is ++@c 5 megabytes long you can profile the whole thing using a scale of 50 ++@c Note that long runs may result in overflow, and so an understating of the ++@c time in a function. ++ ++@c You must run intensively however since, with a scale of 128 it takes ++@c 6,000,000 times through a loop to overflow the sampling in one part of ++@c the code. + + +-@end defun +-@defun PROF (x y) +-Package:SI +- +-These functions in the SI package are GCL specific, and allow monitoring +-the run time of functions loaded into GCL, as well as the basic functions. +- Sample Usage: +- (si::set-up-profile 1000000) (si::prof 0 90) +- run program +- (si::prof 0 0) ;; turn off profile +- (si::display-prof) +- (si::clear-profile) +- (si::prof 0 90) ;; start profile again +- run program +- .. +- Profile can be stopped with (si::prof 0 0) and restarted with (si::prof 0 90) +-The START-ADDRESS will correspond to the beginning of the profile array, and +-the SCALE will mean that 256 bytes of code correspond to SCALE bytes in the +-profile array. +- +-Thus if the profile array is 1,000,000 bytes long and the code segment is +-5 megabytes long you can profile the whole thing using a scale of 50 +-Note that long runs may result in overflow, and so an understating of the +-time in a function. +- +-You must run intensively however since, with a scale of 128 it takes +-6,000,000 times through a loop to overflow the sampling in one part of +-the code. +- +- +-@end defun ++@c @end defun + @defun CATCH-FATAL (i) + Package:SI + +--- gcl27-2.7.1.orig/info/structure.texi ++++ gcl27-2.7.1/info/structure.texi +@@ -34,7 +34,7 @@ a lisp structure correspond to a C struc + @end deffn + + @defun HELP (&optional symbol) +-Package:LISP ++Package:USER + + GCL specific: Prints the documentation associated with SYMBOL. With no + argument, this function prints the greeting message to GCL beginners. +--- gcl27-2.7.1.orig/info/type.texi ++++ gcl27-2.7.1/info/type.texi +@@ -34,7 +34,7 @@ Returns T if X is of the type TYPE; NIL + @end defun + + @defun COMMONP (x) +-Package:LISP ++Package:SI + + Returns T if X is a Common Lisp object; NIL otherwise. + +--- gcl27-2.7.1.orig/info/user-interface.texi ++++ gcl27-2.7.1/info/user-interface.texi +@@ -61,7 +61,7 @@ Evaluates FORM in the single-step mode a + @end deffn + + @defvar *BREAK-ENABLE* +-Package:LISP ++Package:SI + GCL specific: When an error occurrs, control enters to the break loop only + if the value of this variable is non-NIL. + +@@ -99,7 +99,7 @@ Holds the I/O stream used by the GCL deb + @end defvar + + @defvar *BREAK-ON-WARNINGS* +-Package:LISP ++Package:SI + When the function WARN is called, control enters to the break loop only + if the value of this varialbe is non-NIL. + +--- gcl27-2.7.1.orig/lsp/gcl_listlib.lsp ++++ gcl27-2.7.1/lsp/gcl_listlib.lsp +@@ -371,7 +371,8 @@ + + (defseq union (nil (l1 l2) :list t) + (let (rp) +- (prog1 (or (mapcan (lambda (x) ++ (prog1 (or (unless l2 l1) ++ (mapcan (lambda (x) + (unless (member (key x) l2 :test #'test) + (setq rp (cons x nil)))) + l1) +@@ -380,21 +381,26 @@ + + + (defseq set-difference (nil (l1 l2) :list t) +- (mapcan (lambda (x) ++ (if l2 ++ (mapcan (lambda (x) + (unless (member (key x) l2 :test #'test) + (cons x nil))) +- l1)) ++ l1) ++ l1)) + + + (defseq set-exclusive-or (nil (l1 l2) :list t) +- (let (rp (rr (copy-list l2))) +- (prog1 (or (mapcan (lambda (x &aux (k (key x))) ++ (let (rp tmp n2) ++ (declare (dynamic-extent tmp)) ++ (or (unless l2 l1) ++ (prog1 (mapcan (lambda (x &aux (k (key x))) + (if (member k l2 :test #'test) +- (unless (setq rr (delete k rr :test #'test))) ++ (unless (push k tmp)) + (setq rp (cons x nil)))) + l1) +- rr) +- (when rp (rplacd rp rr))))) ++ (setq n2 (set-difference l2 tmp :test (lambda (x y) (funcall #'test y x)))) ++ (when rp (rplacd rp n2))) ++ n2))) + + (defseq nintersection (nil (l1 l2) :list t) + (let (r rp) +--- gcl27-2.7.1.orig/lsp/gcl_lr.lsp ++++ gcl27-2.7.1/lsp/gcl_lr.lsp +@@ -106,7 +106,8 @@ + + (defbltin clzl) + (defbltin ctzl) +-(defbltin popcountl) ++#-darwin(defbltin popcountl) ;Macports builtin calls external function outside symbol table ++#+darwin(defmacro popcountl (x) `(popcount ,x)) + (defbltin parityl) + (defbltin ffsl) + +--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp ++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp +@@ -112,10 +112,12 @@ + (defun canonicalize-pathname-directory (l) + (cond ((eq l :wild) (canonicalize-pathname-directory '(:absolute :wild-inferiors))) + ((stringp l) (canonicalize-pathname-directory (list :absolute l))) +- ((mapl (lambda (x &aux (c (car x))) +- (when (and (or (stringp c) (eq c :wild)) (eq (cadr x) :back)) ++ ((mapl (lambda (x &aux (c (car x)) ++ (skip (cond ((equal c ".") (cdr x)) ++ ((when (or (stringp c) (eq c :wild)) (eq (cadr x) :back)) (cddr x))))) ++ (when skip + (return-from canonicalize-pathname-directory +- (canonicalize-pathname-directory (nconc (ldiff-nf l x) (cddr x)))))) ++ (canonicalize-pathname-directory (nconc (ldiff-nf l x) skip))))) + l)))) + + (defvar *default-pathname-defaults* (init-pathname nil nil nil nil nil nil "")) +--- gcl27-2.7.1.orig/o/file.d ++++ gcl27-2.7.1/o/file.d +@@ -1439,7 +1439,8 @@ BEGIN: + + #ifdef USE_READLINE + if (readline_on && strm->sm.sm_fp==rl_instream) +- if (rl_line_buffer) return *rl_line_buffer ? TRUE : FALSE; ++ /*FIXME homogenize this*/ ++ if (rl_line_buffer) return *rl_line_buffer && *rl_line_buffer!=EOF ? TRUE : FALSE; + #endif + if (strm->sm.sm_fp == NULL) + closed_stream(strm); +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -186,7 +186,8 @@ next_line(int l,ufixnum *s) { + ssize_t i; + char *p; + +- if (*s && (n=strlen(FN1))) { ++ if (*s) { ++ n=strlen(FN1); + memmove(FN1,FN1+n+1,sizeof(FN1)-(n+1)); + *s-=n+1; + } +@@ -406,6 +407,31 @@ setup_maxpages(double scale) { + + } + ++int ++qemu_p(void) { ++ ++#if !defined(DARWIN) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/ ++ ++ char *c; ++ ufixnum e,r=0; ++ int l; ++ ++ massert((l=open("/proc/cpuinfo",O_RDONLY))!=-1); ++ ++ for (e=0;!e && (c=next_line(l,&r));) ++ e=!memcmp("model",c,5) && strstr(c,"QEMU"); ++ ++ massert(!close(l)); ++ ++ return e; ++ ++#else ++ ++ return 0; ++ ++#endif ++} ++ + + static void * + next_shared_lib_map_no_malloc(void) { +@@ -727,6 +753,7 @@ main(int argc, char **argv, char **envp) + bds_top = bds_org-1; + frs_top = frs_org-1; + ++#define CHECK_FOR_QEMU + #include "cstack.h" + + gcl_init_alloc(alloca(1)); +@@ -1432,6 +1459,7 @@ my_fprintf(void *v,const char *f,...) { + return r; + } + ++#ifdef HAVE_FPRINTF_STYLED_FTYPE + static int + my_fprintf_styled(void *v,enum disassembler_style,const char *f,...) { + va_list va; +@@ -1441,6 +1469,7 @@ my_fprintf_styled(void *v,enum disassemb + va_end(va); + return r; + } ++#endif + + static int + my_read(bfd_vma memaddr, bfd_byte *myaddr, unsigned int length, struct disassemble_info *dinfo) { +@@ -1468,14 +1497,18 @@ DEFUN("DISASSEMBLE-INSTRUCTION",object,f + + if ((v=dlopen("libopcodes.so",RTLD_NOW))) { + if ((s=dlsym(v,"init_disassemble_info"))) { +- s(&i, stdout,(fprintf_ftype) my_fprintf,my_fprintf_styled); ++ s(&i, stdout,(fprintf_ftype)my_fprintf ++#ifdef HAVE_FPRINTF_STYLED_FTYPE ++ ,my_fprintf_styled ++#endif ++ ); + i.read_memory_func=my_read; + i.print_address_func=my_pa; + #if defined(OUTPUT_MACH) + i.mach=OUTPUT_MACH; + #endif + if ((s=dlsym(v,"disassembler"))) { +- disassembler_ftype disasm=(disassembler_ftype)(ufixnum)s(OUTPUT_ARCH,false,0,NULL);/*bfd_mach_x86_64*/ ++ disassembler_ftype disasm=(disassembler_ftype)(ufixnum)s(OUTPUT_ARCH,0,0,NULL); + bp=b; + disasm(addr,&i); + my_fprintf(NULL," ;"); +--- gcl27-2.7.1.orig/o/msbrk.c ++++ gcl27-2.7.1/o/msbrk.c +@@ -17,13 +17,21 @@ msbrk_end(void) { + + } + +-#if !defined(DARWIN) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/ ++#if !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/ + + static void * + new_map(void *v,ufixnum s) { + return mmap(v,s,PROT_READ|PROT_WRITE|PROT_EXEC,MAP_PRIVATE|MAP_ANON|MAP_FIXED,-1,0); + } + ++#if defined(DARWIN) ++/*This initial heap must be large enough to initialize the raw image, ++ but not so large that the Mac linker ignores the segment designation ++ and creates a __huge section under __DATA for this and other ++ variables. We enlarge this on unexec.*/ ++asm (".zerofill __HEAP,__heap,__end,0x70000000\n\t.globl __end"); ++#endif ++ + int + msbrk_init(void) { + +--- gcl27-2.7.1.orig/o/num_sfun.c ++++ gcl27-2.7.1/o/num_sfun.c +@@ -802,7 +802,6 @@ DEFUN("ISINF",object,fSisinf,SI,1,1,NONE + + } + +- + void + gcl_init_num_sfun(void) + { +--- gcl27-2.7.1.orig/o/sfaslmacho.c ++++ gcl27-2.7.1/o/sfaslmacho.c +@@ -208,7 +208,7 @@ load_memory(struct section *sec1,struct + if (LOAD_SEC(sec)) + memcpy((void *)sec->addr,v1+sec->offset,sec->size); + else +- bzero((void *)sec->sh_addr,sec->sh_size); ++ bzero((void *)sec->addr,sec->size); + } + + if (**got) { +--- gcl27-2.7.1.orig/o/unexmacosx.c ++++ gcl27-2.7.1/o/unexmacosx.c +@@ -211,9 +211,6 @@ vm_range_t marked_regions [MAX_MARKED_RE + + unsigned num_marked_regions; + +-/* Size of the heap. */ +-static unsigned long big_heap; +- + /* Start of the heap. */ + char *mach_mapstart = 0; + +@@ -543,42 +540,6 @@ copy_data_segment (struct load_command * + unexec_error ("cannot write header of __DATA segment"); + curr_header_offset += lc->cmdsize; + +- /* Create new __DATA segment load commands for regions on the region +- list that do not corresponding to any segment load commands in +- the input file. +- */ +- /* for (j = 0; j < num_unexec_regions; j++) */ +- { +- struct segment_command sc; +- +- sc.cmd = LC_SEGMENT; +- sc.cmdsize = sizeof (struct segment_command); +- /* strncpy (sc.segname, SEG_DATA, 16); */ +- strncpy (sc.segname, "__HEAP", 16); +- sc.vmaddr = (long)mach_mapstart; +- sc.vmsize = mach_maplimit-mach_mapstart; +- sc.fileoff = curr_file_offset; +- sc.filesize = core_end-mach_mapstart; +- sc.maxprot = VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE; +- sc.initprot = VM_PROT_READ | VM_PROT_WRITE /* | VM_PROT_EXECUTE */; +- sc.nsects = 0; +- sc.flags = 0; +- +-#if VERBOSE +- printf ("Writing segment %-16.16s @ %#8lx (%#8lx/%#8lx @ %#10lx)\n", +- sc.segname, (long) (sc.fileoff), (long) (sc.filesize), +- (long) (sc.vmsize), (long) (sc.vmaddr)); +-#endif +- +- if (!unexec_write (sc.fileoff, (void *) sc.vmaddr, sc.filesize)) +- unexec_error ("cannot write new __DATA segment"); +- curr_file_offset += ROUNDUP_TO_PAGE_BOUNDARY (sc.filesize); +- +- if (!unexec_write (curr_header_offset, &sc, sc.cmdsize)) +- unexec_error ("cannot write new __DATA segment's header"); +- curr_header_offset += sc.cmdsize; +- mh.ncmds++; +- } + } + + /* Copy a LC_SYMTAB load command from the input file to the output +@@ -853,7 +814,7 @@ static void + dump_it () { + + int i; +- long linkedit_delta = 0; ++ long linkedit_delta=0,linkedit_vmdelta=0; + + #if VERBOSE + printf ("--- Load Commands written to Output File ---\n"); +@@ -878,17 +839,46 @@ dump_it () { + + copy_data_segment (lca[i]); + +- } else { ++ } else if (strncmp (scp->segname, "__HEAP", 16) == 0) { + +- if (strncmp (scp->segname, SEG_LINKEDIT, 16) == 0) { +- if (linkedit_delta) +- unexec_error ("cannot handle multiple LINKEDIT segments in input file"); +- linkedit_delta = curr_file_offset - scp->fileoff; +- } ++ extern char *data_start; ++ struct section *sectp = (struct section *) (scp + 1); ++ unsigned long header_offset=curr_header_offset + sizeof (struct segment_command); + +- if (strncmp (scp->segname, "__HEAP", 16) != 0) copy_segment (lca[i]); else mh.ncmds--; ++ scp->vmaddr=(long)data_start; ++ linkedit_vmdelta=(1UL<<37)-scp->vmsize; ++ scp->vmsize=(1UL<<37); ++ scp->fileoff=curr_file_offset; ++ scp->filesize=core_end-data_start; ++ scp->maxprot=VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE; ++ scp->initprot=VM_PROT_READ | VM_PROT_WRITE; ++ scp->nsects=1; ++ scp->flags=S_REGULAR; + +- } ++ sectp->addr=scp->vmaddr; ++ sectp->size=scp->filesize; ++ sectp->flags=S_REGULAR; ++ ++ if (!unexec_write (header_offset, sectp, sizeof (struct section))) ++ unexec_error ("cannot write section _HEAP's header"); ++ ++ if (!unexec_write (scp->fileoff, (void *) scp->vmaddr, scp->filesize)) ++ unexec_error ("cannot write __HEAP segment"); ++ curr_file_offset += ROUNDUP_TO_PAGE_BOUNDARY (scp->filesize); ++ ++ if (!unexec_write (curr_header_offset, scp, sizeof (struct segment_command))) ++ unexec_error ("cannot write header of __HEAP segment"); ++ curr_header_offset += scp->cmdsize; ++ ++ } else if (strncmp (scp->segname, SEG_LINKEDIT, 16) == 0) { ++ ++ if (linkedit_delta) ++ unexec_error ("cannot handle multiple LINKEDIT segments in input file"); ++ linkedit_delta = curr_file_offset - scp->fileoff; ++ scp->vmaddr+=linkedit_vmdelta; ++ copy_segment (lca[i]); ++ } else ++ copy_segment (lca[i]); + } + break; + case LC_SYMTAB: +@@ -1035,52 +1025,6 @@ unexec (char *outfile, char *infile, voi + + } + +-/* Replacement for broken sbrk(2). */ +- +-#include +-#include +-unsigned long +-probe_big_heap(unsigned long try,unsigned long inc,unsigned long max) { +- +- void *r; +- +- if ((r=mmap(NULL, try, PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0))==(void *)-1) +- return try>inc ? probe_big_heap(try-inc,inc>>1,max) : 0; +- munmap(r,try); +- return (!inc || try >=max) ? try : probe_big_heap(try+inc,inc,max); +- +-} +- +-void *my_sbrk (long incr) +-{ +- char *temp, *ptr; +- +- if (mach_brkpt == 0) { +- +- big_heap=(1UL)<<35; +- if (!(big_heap=probe_big_heap(PAGESIZE,big_heap>>1,big_heap))) { +- unexec_error("my_sbrk(): probe_big_heap() failed\n"); +- return ((char *)-1); +- } +- +- mach_brkpt=mmap(NULL, big_heap, PROT_READ|PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); +- +- mach_mapstart = mach_brkpt; +- mach_maplimit = mach_brkpt + big_heap; +- +- } +- if (incr == 0) { +- return (mach_brkpt); +- } else { +- ptr = mach_brkpt + incr; +- if (ptr mach_maplimit) +- return (char *)-1; +- temp = mach_brkpt; +- mach_brkpt = ptr; +- return (temp); +- } +-} +- + static size_t stub_size (malloc_zone_t *zone, const void *ptr) + { + extern object malloc_list; +--- gcl27-2.7.1.orig/pcl/gcl_pcl_defs.lisp ++++ gcl27-2.7.1/pcl/gcl_pcl_defs.lisp +@@ -411,6 +411,7 @@ + ; (print `(deftype ,name nil `(si::std-instance ,(si::coerce-to-standard-class ',name)))) + ; (print (si::coerce-to-standard-class name)) + (eval `(deftype ,name nil t)) ++ (unintern (get name 'si::simple-typep-fn)) + (remprop name 'si::simple-typep-fn))) + + ;; #+cmu17 (declare (ignore name predicate)) +--- gcl27-2.7.1.orig/xbin/ar_merge ++++ gcl27-2.7.1/xbin/ar_merge +@@ -4,13 +4,14 @@ FLAGS=$1 + shift + ARCHIVE=$1 + shift ++XPWD=$(pwd) + + TMPDIR=$(mktemp -d) + while [ $# -gt 0 ] ; do + case $(basename $1) in + *.o) cp $1 $TMPDIR;; + *.go) cp $1 $TMPDIR/$(echo $(basename $1)|sed 's,\.go,.o,g');; +- *.a) ar x $1 --output $TMPDIR;; ++ *.a) cd $TMPDIR && ar x $XPWD/$1 && cd $XPWD;; + recompile);; + *) echo Bad arg $1 ; exit 1 ;; + esac diff --git a/debian/patches/Version_2_7_2pre20 b/debian/patches/Version_2_7_2pre20 new file mode 100644 index 00000000..0251806d --- /dev/null +++ b/debian/patches/Version_2_7_2pre20 @@ -0,0 +1,4803 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 13 2026 17:27:35 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +Bug-Debian: https://bugs.debian.org/1105309 +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre19" ++"Version_2_7_2pre20" +--- gcl27-2.7.1.orig/info/c-interface.texi ++++ gcl27-2.7.1/info/c-interface.texi +@@ -8,7 +8,7 @@ + * External Shared Libraries:: + @end menu + +-@node Available Symbols, , C Interface, C Interface ++@node Available Symbols, External Shared Libraries , C Interface, C Interface + @section Available Symbols + + When GCL is built, those symbols in the system libraries which +--- gcl27-2.7.1.orig/info/gcl-dwdoc.info ++++ gcl27-2.7.1/info/gcl-dwdoc.info +@@ -1,4 +1,4 @@ +-This is gcl-dwdoc.info, produced by makeinfo version 7.1 from ++This is gcl-dwdoc.info, produced by makeinfo version 7.3 from + gcl-dwdoc.texi. + + This is a Texinfo GCL DWDOC Manual +@@ -882,7 +882,6 @@ that were adapted from X Consortium soft + + ;;***************************************************************** + +- +  + Tag Table: + Node: Top415 +--- gcl27-2.7.1.orig/info/gcl-si.info ++++ gcl27-2.7.1/info/gcl-si.info +@@ -1,4 +1,4 @@ +-This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi. ++This is gcl-si.info, produced by makeinfo version 7.3 from gcl-si.texi. + + This is a Texinfo GCL SYSTEM INTERNALS Manual + +@@ -12,46 +12,46 @@ END-INFO-DIR-ENTRY +  + Indirect: + gcl-si.info-1: 319 +-gcl-si.info-2: 343510 ++gcl-si.info-2: 343457 +  + Tag Table: + (Indirect) + Node: Top319 +-Node: Numbers1239 +-Node: Sequences and Arrays and Hash Tables23635 +-Node: Characters49430 +-Node: Lists56802 +-Node: Streams and Reading70576 +-Node: Special Forms and Functions95964 +-Node: Compilation121601 +-Node: Symbols133502 +-Node: Operating System143262 +-Node: Command Line143478 +-Node: Operating System Definitions147660 +-Node: Environment Variables154017 +-Node: Structures155607 +-Node: Iteration and Tests157159 +-Node: User Interface160609 +-Node: Doc169668 +-Node: Type172953 +-Node: GCL Specific175611 +-Node: Bignums184163 +-Node: C Interface186852 +-Node: Available Symbols187044 +-Node: External Shared Libraries187535 +-Node: System Definitions203120 +-Node: Regular Expressions235093 +-Node: Debugging241340 +-Node: Source Level Debugging in Emacs241541 +-Node: Low Level Debug Functions245786 +-Node: Miscellaneous246786 +-Node: Environment246994 +-Node: Inititialization247619 +-Node: Low Level X Interface248163 +-Node: Compiler Definitions248760 +-Node: JAPI GUI Library Binding254730 +-Node: Function Index273784 +-Node: Variable Index343510 ++Node: Numbers1205 ++Node: Sequences and Arrays and Hash Tables23601 ++Node: Characters49396 ++Node: Lists56768 ++Node: Streams and Reading70542 ++Node: Special Forms and Functions95930 ++Node: Compilation121567 ++Node: Symbols133468 ++Node: Operating System143228 ++Node: Command Line143444 ++Node: Operating System Definitions147626 ++Node: Environment Variables153983 ++Node: Structures155548 ++Node: Iteration and Tests157100 ++Node: User Interface160550 ++Node: Doc169609 ++Node: Type172894 ++Node: GCL Specific175552 ++Node: Bignums184104 ++Node: C Interface186793 ++Node: Available Symbols186985 ++Node: External Shared Libraries187476 ++Node: System Definitions203067 ++Node: Regular Expressions235040 ++Node: Debugging241287 ++Node: Source Level Debugging in Emacs241488 ++Node: Low Level Debug Functions245733 ++Node: Miscellaneous246733 ++Node: Environment246941 ++Node: Inititialization247566 ++Node: Low Level X Interface248110 ++Node: Compiler Definitions248707 ++Node: JAPI GUI Library Binding254677 ++Node: Function Index273731 ++Node: Variable Index343457 +  + End Tag Table + +--- gcl27-2.7.1.orig/info/gcl-si.info-1 ++++ gcl27-2.7.1/info/gcl-si.info-1 +@@ -1,4 +1,4 @@ +-This is gcl-si.info, produced by makeinfo version 7.2 from gcl-si.texi. ++This is gcl-si.info, produced by makeinfo version 7.3 from gcl-si.texi. + + This is a Texinfo GCL SYSTEM INTERNALS Manual + +@@ -10,10 +10,10 @@ START-INFO-DIR-ENTRY + END-INFO-DIR-ENTRY + +  +-File: gcl-si.info, Node: Top, Next: Numbers, Prev: (dir), Up: (dir) ++File: gcl-si.info, Node: Top, Next: Numbers, Up: (dir) + +-GCL SI Manual +-************* ++Top ++*** + + * Menu: + +@@ -4900,7 +4900,7 @@ File: gcl-si.info, Node: Operating Syst + may be any non-negative, non-complex number. + +  +-File: gcl-si.info, Node: Environment Variables, Next: Operating System Definitions, Prev: Operating System, Up: Operating System ++File: gcl-si.info, Node: Environment Variables, Prev: Operating System Definitions, Up: Operating System + + 9.3 Environment Variables + ========================= +@@ -5846,7 +5846,7 @@ which reference other libraries, but in + portable. + +  +-File: gcl-si.info, Node: External Shared Libraries, Prev: C Interface, Up: C Interface ++File: gcl-si.info, Node: External Shared Libraries, Prev: Available Symbols, Up: C Interface + + 16.2 External Shared Libraries + ============================== +--- gcl27-2.7.1.orig/info/gcl.info ++++ gcl27-2.7.1/info/gcl.info +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -13,1456 +13,1456 @@ END-INFO-DIR-ENTRY +  + Indirect: + gcl.info-1: 314 +-gcl.info-2: 300673 +-gcl.info-3: 600586 +-gcl.info-4: 904020 +-gcl.info-5: 1201894 +-gcl.info-6: 1501104 +-gcl.info-7: 1802018 +-gcl.info-8: 2102858 +-gcl.info-9: 2400458 ++gcl.info-2: 300631 ++gcl.info-3: 600484 ++gcl.info-4: 903907 ++gcl.info-5: 1201764 ++gcl.info-6: 1500948 ++gcl.info-7: 1801845 ++gcl.info-8: 2102668 ++gcl.info-9: 2400395 +  + Tag Table: + (Indirect) + Node: Top314 +-Node: Introduction (Introduction)41180 +-Node: Scope41532 +-Node: Scope and Purpose41780 +-Node: History42223 +-Node: Organization of the Document51794 +-Node: Referenced Publications54049 +-Node: Definitions57706 +-Node: Notational Conventions58098 +-Node: Font Key58727 +-Node: Modified BNF Syntax60568 +-Node: Splicing in Modified BNF Syntax60943 +-Node: Indirection in Modified BNF Syntax63439 +-Node: Additional Uses for Indirect Definitions in Modified BNF Syntax64087 +-Node: Special Symbols65271 +-Node: Objects with Multiple Notations70068 +-Node: Case in Symbols70512 +-Node: Numbers (Objects with Multiple Notations)71682 +-Node: Use of the Dot Character72082 +-Node: NIL73024 +-Node: Designators75082 +-Node: Nonsense Words77493 +-Node: Error Terminology78172 +-Node: Sections Not Formally Part Of This Standard85495 +-Node: Interpreting Dictionary Entries87005 +-Node: The "Affected By" Section of a Dictionary Entry89404 +-Node: The "Arguments" Section of a Dictionary Entry89937 +-Node: The "Arguments and Values" Section of a Dictionary Entry90459 +-Node: The "Binding Types Affected" Section of a Dictionary Entry91222 +-Node: The "Class Precedence List" Section of a Dictionary Entry91910 +-Node: Dictionary Entries for Type Specifiers93086 +-Node: The "Compound Type Specifier Kind" Section of a Dictionary Entry94228 +-Node: The "Compound Type Specifier Syntax" Section of a Dictionary Entry95279 +-Node: The "Compound Type Specifier Arguments" Section of a Dictionary Entry95955 +-Node: The "Compound Type Specifier Description" Section of a Dictionary Entry96522 +-Node: The "Constant Value" Section of a Dictionary Entry97073 +-Node: The "Description" Section of a Dictionary Entry97527 +-Node: The "Examples" Section of a Dictionary Entry98052 +-Node: The "Exceptional Situations" Section of a Dictionary Entry98541 +-Node: The "Initial Value" Section of a Dictionary Entry99382 +-Node: The "Argument Precedence Order" Section of a Dictionary Entry99906 +-Node: The "Method Signature" Section of a Dictionary Entry100434 +-Node: The "Name" Section of a Dictionary Entry101970 +-Node: The "Notes" Section of a Dictionary Entry104030 +-Node: The "Pronunciation" Section of a Dictionary Entry104740 +-Node: The "See Also" Section of a Dictionary Entry105555 +-Node: The "Side Effects" Section of a Dictionary Entry106030 +-Node: The "Supertypes" Section of a Dictionary Entry106462 +-Node: The "Syntax" Section of a Dictionary Entry107099 +-Node: Special "Syntax" Notations for Overloaded Operators108288 +-Node: Naming Conventions for Rest Parameters109441 +-Node: Requiring Non-Null Rest Parameters in The "Syntax" Section110300 +-Node: Return values in The "Syntax" Section111200 +-Node: No Arguments or Values in The "Syntax" Section111890 +-Node: Unconditional Transfer of Control in The "Syntax" Section112491 +-Node: The "Valid Context" Section of a Dictionary Entry113061 +-Node: The "Value Type" Section of a Dictionary Entry113702 +-Node: Conformance114057 +-Node: Conforming Implementations114473 +-Node: Required Language Features115078 +-Node: Documentation of Implementation-Dependent Features115707 +-Node: Documentation of Extensions116434 +-Node: Treatment of Exceptional Situations117077 +-Node: Resolution of Apparent Conflicts in Exceptional Situations117476 +-Node: Examples of Resolution of Apparent Conflict in Exceptional Situations118146 +-Node: Conformance Statement119150 +-Node: Conforming Programs120133 +-Node: Use of Implementation-Defined Language Features121094 +-Node: Use of Read-Time Conditionals122310 +-Node: Language Extensions123461 +-Node: Language Subsets125874 +-Node: Deprecated Language Features126591 +-Node: Deprecated Functions127432 +-Node: Deprecated Argument Conventions127991 +-Node: Deprecated Variables129001 +-Node: Deprecated Reader Syntax129250 +-Node: Symbols in the COMMON-LISP Package129721 +-Node: Syntax152233 +-Node: Character Syntax152477 +-Node: Readtables153230 +-Node: The Current Readtable154064 +-Node: The Standard Readtable154649 +-Node: The Initial Readtable155186 +-Node: Variables that affect the Lisp Reader155641 +-Node: Standard Characters156195 +-Node: Character Syntax Types160645 +-Node: Constituent Characters164581 +-Node: Constituent Traits165196 +-Node: Invalid Characters168740 +-Node: Macro Characters169288 +-Node: Multiple Escape Characters172062 +-Node: Examples of Multiple Escape Characters172717 +-Node: Single Escape Character173222 +-Node: Examples of Single Escape Characters173717 +-Node: Whitespace Characters174211 +-Node: Examples of Whitespace Characters174560 +-Node: Reader Algorithm174926 +-Node: Interpretation of Tokens181432 +-Node: Numbers as Tokens181792 +-Node: Potential Numbers as Tokens182896 +-Node: Escape Characters and Potential Numbers185486 +-Node: Examples of Potential Numbers186251 +-Node: Constructing Numbers from Tokens187377 +-Node: Syntax of a Rational188178 +-Node: Syntax of an Integer188393 +-Node: Syntax of a Ratio188984 +-Node: Syntax of a Float190114 +-Node: Syntax of a Complex192612 +-Node: The Consing Dot193668 +-Node: Symbols as Tokens194192 +-Node: Valid Patterns for Tokens197687 +-Node: Package System Consistency Rules201027 +-Node: Standard Macro Characters202688 +-Node: Left-Parenthesis203460 +-Node: Right-Parenthesis204990 +-Node: Single-Quote205317 +-Node: Examples of Single-Quote205775 +-Node: Semicolon206012 +-Node: Examples of Semicolon206576 +-Node: Notes about Style for Semicolon206803 +-Node: Use of Single Semicolon207220 +-Node: Use of Double Semicolon207811 +-Node: Use of Triple Semicolon208309 +-Node: Use of Quadruple Semicolon208689 +-Node: Examples of Style for Semicolon209199 +-Node: Double-Quote210172 +-Node: Backquote211618 +-Node: Notes about Backquote215542 +-Node: Comma216613 +-Node: Sharpsign216904 +-Node: Sharpsign Backslash221458 +-Node: Sharpsign Single-Quote222621 +-Node: Sharpsign Left-Parenthesis223094 +-Node: Sharpsign Asterisk224614 +-Node: Examples of Sharpsign Asterisk225878 +-Node: Sharpsign Colon226296 +-Node: Sharpsign Dot226812 +-Node: Sharpsign B227490 +-Node: Sharpsign O227881 +-Node: Sharpsign X228288 +-Node: Sharpsign R228794 +-Node: Sharpsign C230089 +-Node: Sharpsign A231168 +-Node: Sharpsign S232365 +-Node: Sharpsign P233472 +-Node: Sharpsign Equal-Sign233889 +-Node: Sharpsign Sharpsign234410 +-Node: Sharpsign Plus235479 +-Node: Sharpsign Minus236521 +-Node: Sharpsign Vertical-Bar236881 +-Node: Examples of Sharpsign Vertical-Bar237248 +-Node: Notes about Style for Sharpsign Vertical-Bar240239 +-Node: Sharpsign Less-Than-Sign241209 +-Node: Sharpsign Whitespace241647 +-Node: Sharpsign Right-Parenthesis242034 +-Node: Re-Reading Abbreviated Expressions242334 +-Node: Evaluation and Compilation242827 +-Node: Evaluation243208 +-Node: Introduction to Environments244496 +-Node: The Global Environment245354 +-Node: Dynamic Environments246005 +-Node: Lexical Environments247164 +-Node: The Null Lexical Environment248389 +-Node: Environment Objects248903 +-Node: The Evaluation Model249870 +-Node: Form Evaluation250565 +-Node: Symbols as Forms250868 +-Node: Lexical Variables252916 +-Node: Dynamic Variables253947 +-Node: Constant Variables255692 +-Node: Symbols Naming Both Lexical and Dynamic Variables256408 +-Node: Conses as Forms257260 +-Node: Special Forms258207 +-Node: Macro Forms259721 +-Node: Function Forms261547 +-Node: Lambda Forms263997 +-Node: Self-Evaluating Objects264655 +-Node: Examples of Self-Evaluating Objects265377 +-Node: Lambda Expressions265838 +-Node: Closures and Lexical Binding266477 +-Node: Shadowing270233 +-Node: Extent273405 +-Node: Return Values275671 +-Node: Compilation277013 +-Node: Compiler Terminology277320 +-Node: Compilation Semantics281613 +-Node: Compiler Macros282296 +-Node: Purpose of Compiler Macros283957 +-Node: Naming of Compiler Macros285672 +-Node: When Compiler Macros Are Used286650 +-Node: Notes about the Implementation of Compiler Macros288291 +-Node: Minimal Compilation289408 +-Node: Semantic Constraints290584 +-Node: File Compilation294238 +-Node: Processing of Top Level Forms296211 +-Node: Processing of Defining Macros300673 +-Node: Constraints on Macros and Compiler Macros303180 +-Node: Literal Objects in Compiled Files303980 +-Node: Externalizable Objects305390 +-Node: Similarity of Literal Objects307018 +-Node: Similarity of Aggregate Objects307262 +-Node: Definition of Similarity307846 +-Node: Extensions to Similarity Rules312714 +-Node: Additional Constraints on Externalizable Objects313590 +-Node: Exceptional Situations in the Compiler318327 +-Node: Declarations320426 +-Node: Minimal Declaration Processing Requirements321213 +-Node: Declaration Specifiers322379 +-Node: Declaration Identifiers322881 +-Node: Shorthand notation for Type Declarations323697 +-Node: Declaration Scope324064 +-Node: Examples of Declaration Scope326037 +-Node: Lambda Lists329237 +-Node: Ordinary Lambda Lists331669 +-Node: Specifiers for the required parameters334135 +-Node: Specifiers for optional parameters334985 +-Node: A specifier for a rest parameter336166 +-Node: Specifiers for keyword parameters337171 +-Node: Suppressing Keyword Argument Checking341194 +-Node: Examples of Suppressing Keyword Argument Checking341885 +-Node: Specifiers for &aux variables343127 +-Node: Examples of Ordinary Lambda Lists343978 +-Node: Generic Function Lambda Lists347919 +-Node: Specialized Lambda Lists349247 +-Node: Macro Lambda Lists350554 +-Node: Destructuring by Lambda Lists355840 +-Node: Data-directed Destructuring by Lambda Lists357031 +-Node: Examples of Data-directed Destructuring by Lambda Lists357578 +-Node: Lambda-list-directed Destructuring by Lambda Lists358291 +-Node: Destructuring Lambda Lists361352 +-Node: Boa Lambda Lists362584 +-Node: Defsetf Lambda Lists366462 +-Node: Deftype Lambda Lists367377 +-Node: Define-modify-macro Lambda Lists367995 +-Node: Define-method-combination Arguments Lambda Lists368863 +-Node: Syntactic Interaction of Documentation Strings and Declarations369709 +-Node: Error Checking in Function Calls370460 +-Node: Argument Mismatch Detection370731 +-Node: Safe and Unsafe Calls371220 +-Node: Error Detection Time in Safe Calls373983 +-Node: Too Few Arguments374566 +-Node: Too Many Arguments375091 +-Node: Unrecognized Keyword Arguments375739 +-Node: Invalid Keyword Arguments376359 +-Node: Odd Number of Keyword Arguments376963 +-Node: Destructuring Mismatch377549 +-Node: Errors When Calling a Next Method378086 +-Node: Traversal Rules and Side Effects379061 +-Node: Destructive Operations380307 +-Node: Modification of Literal Objects380632 +-Node: Transfer of Control during a Destructive Operation383030 +-Node: Examples of Transfer of Control during a Destructive Operation383527 +-Node: Evaluation and Compilation Dictionary384409 +-Node: lambda (Symbol)385092 +-Node: lambda386294 +-Node: compile387416 +-Node: eval390637 +-Node: eval-when392579 +-Node: load-time-value399022 +-Node: quote404840 +-Node: compiler-macro-function406424 +-Node: define-compiler-macro407395 +-Node: defmacro414887 +-Node: macro-function421070 +-Node: macroexpand423326 +-Node: define-symbol-macro428393 +-Node: symbol-macrolet430959 +-Node: *macroexpand-hook*434090 +-Node: proclaim436356 +-Node: declaim438480 +-Node: declare439293 +-Node: ignore443327 +-Node: dynamic-extent445364 +-Node: type451758 +-Node: inline458535 +-Node: ftype462361 +-Node: declaration463895 +-Node: optimize464823 +-Node: special466980 +-Node: locally471468 +-Node: the473644 +-Node: special-operator-p476052 +-Node: constantp476973 +-Node: Types and Classes480013 +-Node: Introduction (Types and Classes)480275 +-Node: Types482433 +-Node: Data Type Definition482645 +-Node: Type Relationships483787 +-Node: Type Specifiers485712 +-Node: Classes493953 +-Node: Introduction to Classes494815 +-Node: Standard Metaclasses499543 +-Node: Defining Classes500502 +-Node: Creating Instances of Classes502174 +-Node: Inheritance502965 +-Node: Examples of Inheritance503429 +-Node: Inheritance of Class Options504406 +-Node: Determining the Class Precedence List505226 +-Node: Topological Sorting507286 +-Node: Examples of Class Precedence List Determination509719 +-Node: Redefining Classes513273 +-Node: Modifying the Structure of Instances516377 +-Node: Initializing Newly Added Local Slots (Redefining Classes)517562 +-Node: Customizing Class Redefinition519463 +-Node: Integrating Types and Classes520542 +-Node: Types and Classes Dictionary526807 +-Node: nil (Type)527576 +-Node: boolean528032 +-Node: function (System Class)528832 +-Node: compiled-function533548 +-Node: generic-function534387 +-Node: standard-generic-function535424 +-Node: class535947 +-Node: built-in-class536483 +-Node: structure-class537409 +-Node: standard-class537824 +-Node: method538222 +-Node: standard-method539361 +-Node: structure-object539792 +-Node: standard-object540391 +-Node: method-combination540829 +-Node: t (System Class)541488 +-Node: satisfies541854 +-Node: member (Type Specifier)543027 +-Node: not (Type Specifier)544042 +-Node: and (Type Specifier)544758 +-Node: or (Type Specifier)545596 +-Node: values (Type Specifier)546627 +-Node: eql (Type Specifier)547894 +-Node: coerce548669 +-Node: deftype553331 +-Node: subtypep556484 +-Node: type-of563450 +-Node: typep566367 +-Node: type-error569776 +-Node: type-error-datum570479 +-Node: simple-type-error571825 +-Node: Data and Control Flow572569 +-Node: Generalized Reference572834 +-Node: Overview of Places and Generalized Reference573161 +-Node: Evaluation of Subforms to Places575480 +-Node: Examples of Evaluation of Subforms to Places577985 +-Node: Setf Expansions578711 +-Node: Examples of Setf Expansions580781 +-Node: Kinds of Places582666 +-Node: Variable Names as Places583304 +-Node: Function Call Forms as Places583582 +-Node: VALUES Forms as Places591704 +-Node: THE Forms as Places592842 +-Node: APPLY Forms as Places593301 +-Node: Setf Expansions and Places594670 +-Node: Macro Forms as Places595090 +-Node: Symbol Macros as Places595624 +-Node: Other Compound Forms as Places596003 +-Node: Treatment of Other Macros Based on SETF597034 +-Node: Transfer of Control to an Exit Point598451 +-Node: Data and Control Flow Dictionary600586 +-Node: apply601820 +-Node: defun603853 +-Node: fdefinition607600 +-Node: fboundp609447 +-Node: fmakunbound611260 +-Node: flet612245 +-Node: funcall620119 +-Node: function (Special Operator)621828 +-Node: function-lambda-expression623911 +-Node: functionp627159 +-Node: compiled-function-p628117 +-Node: call-arguments-limit629264 +-Node: lambda-list-keywords629897 +-Node: lambda-parameters-limit630640 +-Node: defconstant631291 +-Node: defparameter634137 +-Node: destructuring-bind640716 +-Node: let642039 +-Node: progv645358 +-Node: setq646867 +-Node: psetq648555 +-Node: block650545 +-Node: catch652357 +-Node: go655050 +-Node: return-from656492 +-Node: return658776 +-Node: tagbody659769 +-Node: throw662181 +-Node: unwind-protect664850 +-Node: nil670087 +-Node: not670482 +-Node: t671332 +-Node: eq672319 +-Node: eql674742 +-Node: equal677723 +-Node: equalp681330 +-Node: identity685272 +-Node: complement686031 +-Node: constantly687735 +-Node: every688709 +-Node: and691704 +-Node: cond693464 +-Node: if695109 +-Node: or696366 +-Node: when697782 +-Node: case700382 +-Node: typecase705491 +-Node: multiple-value-bind711071 +-Node: multiple-value-call712938 +-Node: multiple-value-list714194 +-Node: multiple-value-prog1715015 +-Node: multiple-value-setq715972 +-Node: values717586 +-Node: values-list719522 +-Node: multiple-values-limit720504 +-Node: nth-value721330 +-Node: prog722623 +-Node: prog1726375 +-Node: progn728534 +-Node: define-modify-macro729921 +-Node: defsetf732405 +-Node: define-setf-expander738548 +-Node: get-setf-expansion743384 +-Node: setf745138 +-Node: shiftf747602 +-Node: rotatef750209 +-Node: control-error751930 +-Node: program-error752551 +-Node: undefined-function753097 +-Node: Iteration753702 +-Node: The LOOP Facility753876 +-Node: Overview of the Loop Facility754342 +-Node: Simple vs Extended Loop755123 +-Node: Simple Loop755424 +-Node: Extended Loop756117 +-Node: Loop Keywords756748 +-Node: Parsing Loop Clauses757682 +-Node: Expanding Loop Forms759305 +-Node: Summary of Loop Clauses762002 +-Node: Summary of Variable Initialization and Stepping Clauses762303 +-Node: Summary of Value Accumulation Clauses763136 +-Node: Summary of Termination Test Clauses764926 +-Node: Summary of Unconditional Execution Clauses766633 +-Node: Summary of Conditional Execution Clauses767353 +-Node: Summary of Miscellaneous Clauses768445 +-Node: Order of Execution769138 +-Node: Destructuring771010 +-Node: Restrictions on Side-Effects775430 +-Node: Variable Initialization and Stepping Clauses775667 +-Node: Iteration Control776519 +-Node: The for-as-arithmetic subclause779433 +-Node: Examples of for-as-arithmetic subclause783281 +-Node: The for-as-in-list subclause784034 +-Node: Examples of for-as-in-list subclause784828 +-Node: The for-as-on-list subclause785617 +-Node: Examples of for-as-on-list subclause786370 +-Node: The for-as-equals-then subclause786991 +-Node: Examples of for-as-equals-then subclause787749 +-Node: The for-as-across subclause788206 +-Node: Examples of for-as-across subclause788908 +-Node: The for-as-hash subclause789295 +-Node: The for-as-package subclause791517 +-Node: Examples of for-as-package subclause794081 +-Node: Local Variable Initializations794702 +-Node: Examples of WITH clause797545 +-Node: Value Accumulation Clauses798587 +-Node: Examples of COLLECT clause804424 +-Node: Examples of APPEND and NCONC clauses805177 +-Node: Examples of COUNT clause805798 +-Node: Examples of MAXIMIZE and MINIMIZE clauses806120 +-Node: Examples of SUM clause806991 +-Node: Termination Test Clauses807397 +-Node: Examples of REPEAT clause811567 +-Node: Examples of ALWAYS812094 +-Node: Examples of WHILE and UNTIL clauses814117 +-Node: Unconditional Execution Clauses814912 +-Node: Examples of unconditional execution815805 +-Node: Conditional Execution Clauses816302 +-Node: Examples of WHEN clause818007 +-Node: Miscellaneous Clauses819686 +-Node: Control Transfer Clauses820001 +-Node: Examples of NAMED clause820829 +-Node: Initial and Final Execution821220 +-Node: Examples of Miscellaneous Loop Features822849 +-Node: Examples of clause grouping823919 +-Node: Notes about Loop826366 +-Node: Iteration Dictionary827388 +-Node: do827593 +-Node: dotimes836034 +-Node: dolist839489 +-Node: loop841711 +-Node: loop-finish847171 +-Node: Objects849997 +-Node: Object Creation and Initialization850301 +-Node: Initialization Arguments854213 +-Node: Declaring the Validity of Initialization Arguments856820 +-Node: Defaulting of Initialization Arguments860319 +-Node: Rules for Initialization Arguments863590 +-Node: Shared-Initialize867442 +-Node: Initialize-Instance870124 +-Node: Definitions of Make-Instance and Initialize-Instance872859 +-Node: Changing the Class of an Instance874957 +-Node: Modifying the Structure of the Instance876209 +-Node: Initializing Newly Added Local Slots (Changing the Class of an Instance)877147 +-Node: Customizing the Change of Class of an Instance878884 +-Node: Reinitializing an Instance879687 +-Node: Customizing Reinitialization881150 +-Node: Meta-Objects881814 +-Node: Standard Meta-objects882340 +-Node: Slots883379 +-Node: Introduction to Slots883603 +-Node: Accessing Slots886241 +-Node: Inheritance of Slots and Slot Options888818 +-Node: Generic Functions and Methods893560 +-Node: Introduction to Generic Functions894055 +-Node: Introduction to Methods897558 +-Node: Agreement on Parameter Specializers and Qualifiers904020 +-Node: Congruent Lambda-lists for all Methods of a Generic Function905017 +-Node: Keyword Arguments in Generic Functions and Methods907159 +-Node: Examples of Keyword Arguments in Generic Functions and Methods908851 +-Node: Method Selection and Combination910190 +-Node: Determining the Effective Method911656 +-Node: Selecting the Applicable Methods912250 +-Node: Sorting the Applicable Methods by Precedence Order912591 +-Node: Applying method combination to the sorted list of applicable methods914656 +-Node: Standard Method Combination916823 +-Node: Declarative Method Combination921770 +-Node: Built-in Method Combination Types922681 +-Node: Inheritance of Methods926755 +-Node: Objects Dictionary927326 +-Node: function-keywords928334 +-Node: ensure-generic-function929961 +-Node: allocate-instance933269 +-Node: reinitialize-instance934796 +-Node: shared-initialize937031 +-Node: update-instance-for-different-class941539 +-Node: update-instance-for-redefined-class945677 +-Node: change-class950951 +-Node: slot-boundp954973 +-Node: slot-exists-p956755 +-Node: slot-makunbound957557 +-Node: slot-missing959095 +-Node: slot-unbound961434 +-Node: slot-value963106 +-Node: method-qualifiers965917 +-Node: no-applicable-method966714 +-Node: no-next-method967839 +-Node: remove-method969042 +-Node: make-instance969864 +-Node: make-instances-obsolete971279 +-Node: make-load-form972594 +-Node: make-load-form-saving-slots984111 +-Node: with-accessors986059 +-Node: with-slots989000 +-Node: defclass992371 +-Node: defgeneric1004581 +-Node: defmethod1015268 +-Node: find-class1022161 +-Node: next-method-p1024140 +-Node: call-method1025245 +-Node: call-next-method1028261 +-Node: compute-applicable-methods1031322 +-Node: define-method-combination1032384 +-Node: find-method1056137 +-Node: add-method1058794 +-Node: initialize-instance1060028 +-Node: class-name1061820 +-Node: setf class-name1062577 +-Node: class-of1063206 +-Node: unbound-slot1064210 +-Node: unbound-slot-instance1064878 +-Node: Structures1065446 +-Node: Structures Dictionary1065591 +-Node: defstruct1065771 +-Node: copy-structure1106547 +-Node: Conditions1107143 +-Node: Condition System Concepts1107318 +-Node: Condition Types1110927 +-Node: Serious Conditions1113346 +-Node: Creating Conditions1113727 +-Node: Condition Designators1114280 +-Node: Printing Conditions1116120 +-Node: Recommended Style in Condition Reporting1117463 +-Node: Capitalization and Punctuation in Condition Reports1118592 +-Node: Leading and Trailing Newlines in Condition Reports1119315 +-Node: Embedded Newlines in Condition Reports1120277 +-Node: Note about Tabs in Condition Reports1121450 +-Node: Mentioning Containing Function in Condition Reports1122075 +-Node: Signaling and Handling Conditions1122560 +-Node: Signaling1124826 +-Node: Resignaling a Condition1126016 +-Node: Restarts1127076 +-Node: Interactive Use of Restarts1129253 +-Node: Interfaces to Restarts1130449 +-Node: Restart Tests1131345 +-Node: Associating a Restart with a Condition1131825 +-Node: Assertions1132724 +-Node: Notes about the Condition System`s Background1133221 +-Node: Conditions Dictionary1133712 +-Node: condition1134727 +-Node: warning1136521 +-Node: style-warning1136878 +-Node: serious-condition1138082 +-Node: error (Condition Type)1139315 +-Node: cell-error1139680 +-Node: cell-error-name1140286 +-Node: parse-error1141281 +-Node: storage-condition1141751 +-Node: assert1143337 +-Node: error1147298 +-Node: cerror1150994 +-Node: check-type1156124 +-Node: simple-error1160414 +-Node: invalid-method-error1160913 +-Node: method-combination-error1162470 +-Node: signal1163600 +-Node: simple-condition1166161 +-Node: simple-condition-format-control1167090 +-Node: warn1168470 +-Node: simple-warning1170904 +-Node: invoke-debugger1171377 +-Node: break1172879 +-Node: *debugger-hook*1175321 +-Node: *break-on-signals*1177816 +-Node: handler-bind1180456 +-Node: handler-case1183047 +-Node: ignore-errors1188248 +-Node: define-condition1190142 +-Node: make-condition1201894 +-Node: restart1203203 +-Node: compute-restarts1203835 +-Node: find-restart1206600 +-Node: invoke-restart1208605 +-Node: invoke-restart-interactively1210346 +-Node: restart-bind1212665 +-Node: restart-case1216713 +-Node: restart-name1226531 +-Node: with-condition-restarts1227497 +-Node: with-simple-restart1228834 +-Node: abort (Restart)1232322 +-Node: continue1233316 +-Node: muffle-warning1234477 +-Node: store-value1236100 +-Node: use-value1237337 +-Node: abort (Function)1237974 +-Node: Symbols1244311 +-Node: Symbol Concepts1244467 +-Node: Symbols Dictionary1245054 +-Node: symbol1245484 +-Node: keyword1250497 +-Node: symbolp1251097 +-Node: keywordp1251851 +-Node: make-symbol1252735 +-Node: copy-symbol1254350 +-Node: gensym1256795 +-Node: *gensym-counter*1259107 +-Node: gentemp1259877 +-Node: symbol-function1262729 +-Node: symbol-name1265698 +-Node: symbol-package1266401 +-Node: symbol-plist1268258 +-Node: symbol-value1269474 +-Node: get1271489 +-Node: remprop1274749 +-Node: boundp1277377 +-Node: makunbound1278371 +-Node: set1279138 +-Node: unbound-variable1280882 +-Node: Packages1281453 +-Node: Package Concepts1281620 +-Node: Introduction to Packages1281833 +-Node: Package Names and Nicknames1283633 +-Node: Symbols in a Package1284404 +-Node: Internal and External Symbols1284617 +-Node: Package Inheritance1285532 +-Node: Accessibility of Symbols in a Package1286482 +-Node: Locating a Symbol in a Package1288095 +-Node: Prevention of Name Conflicts in Packages1288714 +-Node: Standardized Packages1292078 +-Node: The COMMON-LISP Package1293018 +-Node: Constraints on the COMMON-LISP Package for Conforming Implementations1294353 +-Node: Constraints on the COMMON-LISP Package for Conforming Programs1295899 +-Node: Some Exceptions to Constraints on the COMMON-LISP Package for Conforming Programs1298010 +-Node: The COMMON-LISP-USER Package1299857 +-Node: The KEYWORD Package1300456 +-Node: Interning a Symbol in the KEYWORD Package1301319 +-Node: Notes about The KEYWORD Package1301909 +-Node: Implementation-Defined Packages1302832 +-Node: Packages Dictionary1303401 +-Node: package1304073 +-Node: export1304526 +-Node: find-symbol1307608 +-Node: find-package1310037 +-Node: find-all-symbols1311063 +-Node: import1312059 +-Node: list-all-packages1314566 +-Node: rename-package1315240 +-Node: shadow1316528 +-Node: shadowing-import1318907 +-Node: delete-package1320839 +-Node: make-package1325858 +-Node: with-package-iterator1327910 +-Node: unexport1333557 +-Node: unintern1335117 +-Node: in-package1337212 +-Node: unuse-package1338185 +-Node: use-package1339602 +-Node: defpackage1341691 +-Node: do-symbols1350040 +-Node: intern1353622 +-Node: package-name1355967 +-Node: package-nicknames1357023 +-Node: package-shadowing-symbols1357802 +-Node: package-use-list1359034 +-Node: package-used-by-list1359932 +-Node: packagep1360806 +-Node: *package*1361459 +-Node: package-error1362832 +-Node: package-error-package1363491 +-Node: Numbers (Numbers)1364189 +-Node: Number Concepts1364355 +-Node: Numeric Operations1364733 +-Node: Associativity and Commutativity in Numeric Operations1366757 +-Node: Examples of Associativity and Commutativity in Numeric Operations1367880 +-Node: Contagion in Numeric Operations1369540 +-Node: Viewing Integers as Bits and Bytes1370057 +-Node: Logical Operations on Integers1370311 +-Node: Byte Operations on Integers1371392 +-Node: Implementation-Dependent Numeric Constants1372189 +-Node: Rational Computations1373377 +-Node: Rule of Unbounded Rational Precision1373789 +-Node: Rule of Canonical Representation for Rationals1374244 +-Node: Rule of Float Substitutability1375355 +-Node: Floating-point Computations1377758 +-Node: Rule of Float and Rational Contagion1378238 +-Node: Examples of Rule of Float and Rational Contagion1379135 +-Node: Rule of Float Approximation1380199 +-Node: Rule of Float Underflow and Overflow1381381 +-Node: Rule of Float Precision Contagion1381823 +-Node: Complex Computations1382174 +-Node: Rule of Complex Substitutability1382661 +-Node: Rule of Complex Contagion1383062 +-Node: Rule of Canonical Representation for Complex Rationals1383469 +-Node: Examples of Rule of Canonical Representation for Complex Rationals1384333 +-Node: Principal Values and Branch Cuts1384998 +-Node: Interval Designators1387034 +-Node: Random-State Operations1388549 +-Node: Numbers Dictionary1388900 +-Node: number1390271 +-Node: complex (System Class)1391433 +-Node: real1393677 +-Node: float (System Class)1394836 +-Node: short-float1397498 +-Node: rational (System Class)1401489 +-Node: ratio1402525 +-Node: integer1403124 +-Node: signed-byte1404496 +-Node: unsigned-byte1405533 +-Node: mod (System Class)1406663 +-Node: bit (System Class)1407409 +-Node: fixnum1407770 +-Node: bignum1408261 +-Node: =1408567 +-Node: max1411973 +-Node: minusp1414051 +-Node: zerop1414983 +-Node: floor1415970 +-Node: sin1420833 +-Node: asin1421664 +-Node: pi1428500 +-Node: sinh1429610 +-Node: *1434158 +-Node: +1434996 +-Node: -1435797 +-Node: /1436958 +-Node: 1+1438589 +-Node: abs1439555 +-Node: evenp1441002 +-Node: exp1441920 +-Node: gcd1445121 +-Node: incf1446157 +-Node: lcm1447353 +-Node: log1448471 +-Node: mod (Function)1450640 +-Node: signum1451962 +-Node: sqrt1453634 +-Node: random-state1455719 +-Node: make-random-state1456564 +-Node: random1458507 +-Node: random-state-p1460008 +-Node: *random-state*1460781 +-Node: numberp1462211 +-Node: cis1462886 +-Node: complex1463462 +-Node: complexp1465115 +-Node: conjugate1465770 +-Node: phase1466549 +-Node: realpart1468109 +-Node: upgraded-complex-part-type1469108 +-Node: realp1470092 +-Node: numerator1470725 +-Node: rational (Function)1471790 +-Node: rationalp1473354 +-Node: ash1474023 +-Node: integer-length1475530 +-Node: integerp1477194 +-Node: parse-integer1477845 +-Node: boole1479962 +-Node: boole-11484483 +-Node: logand1485594 +-Node: logbitp1489575 +-Node: logcount1490770 +-Node: logtest1492189 +-Node: byte1493262 +-Node: deposit-field1494517 +-Node: dpb1495547 +-Node: ldb1496995 +-Node: ldb-test1498605 +-Node: mask-field1499446 +-Node: most-positive-fixnum1501104 +-Node: decode-float1501778 +-Node: float1507557 +-Node: floatp1508496 +-Node: most-positive-short-float1509130 +-Node: short-float-epsilon1513431 +-Node: arithmetic-error1514816 +-Node: arithmetic-error-operands1515570 +-Node: division-by-zero1516491 +-Node: floating-point-invalid-operation1516969 +-Node: floating-point-inexact1517757 +-Node: floating-point-overflow1518512 +-Node: floating-point-underflow1519021 +-Node: Characters1519504 +-Node: Character Concepts1519680 +-Node: Introduction to Characters1520174 +-Node: Introduction to Scripts and Repertoires1521581 +-Node: Character Scripts1521889 +-Node: Character Repertoires1522902 +-Node: Character Attributes1523813 +-Node: Character Categories1524821 +-Node: Graphic Characters1526044 +-Node: Alphabetic Characters1526971 +-Node: Characters With Case1527634 +-Node: Uppercase Characters1528088 +-Node: Lowercase Characters1528543 +-Node: Corresponding Characters in the Other Case1529017 +-Node: Case of Implementation-Defined Characters1529548 +-Node: Numeric Characters1530049 +-Node: Alphanumeric Characters1530557 +-Node: Digits in a Radix1530876 +-Node: Identity of Characters1531604 +-Node: Ordering of Characters1531874 +-Node: Character Names1533664 +-Node: Treatment of Newline during Input and Output1534807 +-Node: Character Encodings1535358 +-Node: Documentation of Implementation-Defined Scripts1536156 +-Node: Characters Dictionary1537627 +-Node: character (System Class)1538130 +-Node: base-char1538741 +-Node: standard-char1540725 +-Node: extended-char1541265 +-Node: char=1541726 +-Node: character1547890 +-Node: characterp1548769 +-Node: alpha-char-p1549707 +-Node: alphanumericp1550878 +-Node: digit-char1552273 +-Node: digit-char-p1553393 +-Node: graphic-char-p1554893 +-Node: standard-char-p1555779 +-Node: char-upcase1556627 +-Node: upper-case-p1559065 +-Node: char-code1560614 +-Node: char-int1561341 +-Node: code-char1562337 +-Node: char-code-limit1563099 +-Node: char-name1563759 +-Node: name-char1565683 +-Node: Conses1566561 +-Node: Cons Concepts1566709 +-Node: Conses as Trees1567246 +-Node: General Restrictions on Parameters that must be Trees1568215 +-Node: Conses as Lists1568649 +-Node: Lists as Association Lists1570049 +-Node: Lists as Sets1570577 +-Node: General Restrictions on Parameters that must be Lists1571128 +-Node: Conses Dictionary1571785 +-Node: list (System Class)1572547 +-Node: null (System Class)1573781 +-Node: cons (System Class)1574273 +-Node: atom (Type)1575503 +-Node: cons1575743 +-Node: consp1576660 +-Node: atom1577382 +-Node: rplaca1578089 +-Node: car1579229 +-Node: copy-tree1585615 +-Node: sublis1587244 +-Node: subst1590990 +-Node: tree-equal1595379 +-Node: copy-list1597162 +-Node: list (Function)1598484 +-Node: list-length1600112 +-Node: listp1602023 +-Node: make-list1602828 +-Node: push1603790 +-Node: pop1605036 +-Node: first1606335 +-Node: nth1609212 +-Node: endp1610271 +-Node: null1611672 +-Node: nconc1612482 +-Node: append1614623 +-Node: revappend1615757 +-Node: butlast1617949 +-Node: last1619785 +-Node: ldiff1621553 +-Node: nthcdr1625188 +-Node: rest1626323 +-Node: member (Function)1627307 +-Node: mapc1629610 +-Node: acons1633848 +-Node: assoc1634867 +-Node: copy-alist1638119 +-Node: pairlis1639397 +-Node: rassoc1640922 +-Node: get-properties1643056 +-Node: getf1644440 +-Node: remf1647311 +-Node: intersection1648666 +-Node: adjoin1652608 +-Node: pushnew1654554 +-Node: set-difference1657299 +-Node: set-exclusive-or1660676 +-Node: subsetp1663774 +-Node: union1665800 +-Node: Arrays1668901 +-Node: Array Concepts1669047 +-Node: Array Elements1669235 +-Node: Array Indices1669792 +-Node: Array Dimensions1670207 +-Node: Implementation Limits on Individual Array Dimensions1670797 +-Node: Array Rank1671222 +-Node: Vectors1671707 +-Node: Fill Pointers1671913 +-Node: Multidimensional Arrays1672645 +-Node: Storage Layout for Multidimensional Arrays1672856 +-Node: Implementation Limits on Array Rank1673370 +-Node: Specialized Arrays1673744 +-Node: Array Upgrading1675061 +-Node: Required Kinds of Specialized Arrays1676443 +-Node: Arrays Dictionary1677938 +-Node: array1678753 +-Node: simple-array1681805 +-Node: vector (System Class)1683758 +-Node: simple-vector1685858 +-Node: bit-vector1686871 +-Node: simple-bit-vector1687916 +-Node: make-array1688902 +-Node: adjust-array1697581 +-Node: adjustable-array-p1705592 +-Node: aref1706568 +-Node: array-dimension1708259 +-Node: array-dimensions1709126 +-Node: array-element-type1709980 +-Node: array-has-fill-pointer-p1711372 +-Node: array-displacement1712530 +-Node: array-in-bounds-p1714211 +-Node: array-rank1715392 +-Node: array-row-major-index1716170 +-Node: array-total-size1717694 +-Node: arrayp1718976 +-Node: fill-pointer1719739 +-Node: row-major-aref1720898 +-Node: upgraded-array-element-type1721996 +-Node: array-dimension-limit1723603 +-Node: array-rank-limit1724132 +-Node: array-total-size-limit1724626 +-Node: simple-vector-p1725394 +-Node: svref1726155 +-Node: vector1727229 +-Node: vector-pop1728135 +-Node: vector-push1729406 +-Node: vectorp1732238 +-Node: bit (Array)1732946 +-Node: bit-and1734292 +-Node: bit-vector-p1738490 +-Node: simple-bit-vector-p1739295 +-Node: Strings1740005 +-Node: String Concepts1740158 +-Node: Implications of Strings Being Arrays1740374 +-Node: Subtypes of STRING1740863 +-Node: Strings Dictionary1741270 +-Node: string (System Class)1741609 +-Node: base-string1742681 +-Node: simple-string1743631 +-Node: simple-base-string1744674 +-Node: simple-string-p1745588 +-Node: char1746349 +-Node: string1747896 +-Node: string-upcase1749163 +-Node: string-trim1753224 +-Node: string=1754871 +-Node: stringp1760411 +-Node: make-string1761032 +-Node: Sequences1761976 +-Node: Sequence Concepts1762173 +-Node: General Restrictions on Parameters that must be Sequences1763810 +-Node: Rules about Test Functions1764195 +-Node: Satisfying a Two-Argument Test1764464 +-Node: Examples of Satisfying a Two-Argument Test1766921 +-Node: Satisfying a One-Argument Test1768223 +-Node: Examples of Satisfying a One-Argument Test1770095 +-Node: Sequences Dictionary1770692 +-Node: sequence1771131 +-Node: copy-seq1771838 +-Node: elt1772999 +-Node: fill1774085 +-Node: make-sequence1775484 +-Node: subseq1777598 +-Node: map1779695 +-Node: map-into1782562 +-Node: reduce1785450 +-Node: count1788762 +-Node: length1790858 +-Node: reverse1791849 +-Node: sort1793997 +-Node: find1799450 +-Node: position1802018 +-Node: search1804179 +-Node: mismatch1806112 +-Node: replace1808424 +-Node: substitute1810739 +-Node: concatenate1816693 +-Node: merge1818871 +-Node: remove1823021 +-Node: remove-duplicates1829433 +-Node: Hash Tables1832943 +-Node: Hash Table Concepts1833119 +-Node: Hash-Table Operations1833351 +-Node: Modifying Hash Table Keys1835369 +-Node: Visible Modification of Objects with respect to EQ and EQL1837278 +-Node: Visible Modification of Objects with respect to EQUAL1837739 +-Node: Visible Modification of Conses with respect to EQUAL1838334 +-Node: Visible Modification of Bit Vectors and Strings with respect to EQUAL1838821 +-Node: Visible Modification of Objects with respect to EQUALP1839482 +-Node: Visible Modification of Structures with respect to EQUALP1840092 +-Node: Visible Modification of Arrays with respect to EQUALP1840573 +-Node: Visible Modification of Hash Tables with respect to EQUALP1841177 +-Node: Visible Modifications by Language Extensions1841886 +-Node: Hash Tables Dictionary1842646 +-Node: hash-table1843068 +-Node: make-hash-table1843845 +-Node: hash-table-p1846765 +-Node: hash-table-count1847512 +-Node: hash-table-rehash-size1848911 +-Node: hash-table-rehash-threshold1850429 +-Node: hash-table-size1851481 +-Node: hash-table-test1852259 +-Node: gethash1853122 +-Node: remhash1855289 +-Node: maphash1856137 +-Node: with-hash-table-iterator1857980 +-Node: clrhash1861417 +-Node: sxhash1862271 +-Node: Filenames1865253 +-Node: Overview of Filenames1865457 +-Node: Namestrings as Filenames1866256 +-Node: Pathnames as Filenames1867349 +-Node: Parsing Namestrings Into Pathnames1870698 +-Node: Pathnames1871440 +-Node: Pathname Components1871678 +-Node: The Pathname Host Component1872166 +-Node: The Pathname Device Component1872474 +-Node: The Pathname Directory Component1872855 +-Node: The Pathname Name Component1873204 +-Node: The Pathname Type Component1873521 +-Node: The Pathname Version Component1873934 +-Node: Interpreting Pathname Component Values1874583 +-Node: Strings in Component Values1875787 +-Node: Special Characters in Pathname Components1876058 +-Node: Case in Pathname Components1876962 +-Node: Local Case in Pathname Components1877749 +-Node: Common Case in Pathname Components1878548 +-Node: Special Pathname Component Values1879341 +-Node: NIL as a Component Value1879609 +-Node: ->WILD as a Component Value1880153 +-Node: ->UNSPECIFIC as a Component Value1881184 +-Node: Relation between component values NIL and ->UNSPECIFIC1882575 +-Node: Restrictions on Wildcard Pathnames1883422 +-Node: Restrictions on Examining Pathname Components1884285 +-Node: Restrictions on Examining a Pathname Host Component1885333 +-Node: Restrictions on Examining a Pathname Device Component1885772 +-Node: Restrictions on Examining a Pathname Directory Component1886476 +-Node: Directory Components in Non-Hierarchical File Systems1890002 +-Node: Restrictions on Examining a Pathname Name Component1890650 +-Node: Restrictions on Examining a Pathname Type Component1891077 +-Node: Restrictions on Examining a Pathname Version Component1891505 +-Node: Notes about the Pathname Version Component1892484 +-Node: Restrictions on Constructing Pathnames1893096 +-Node: Merging Pathnames1894638 +-Node: Examples of Merging Pathnames1895416 +-Node: Logical Pathnames1896296 +-Node: Syntax of Logical Pathname Namestrings1896535 +-Node: Additional Information about Parsing Logical Pathname Namestrings1898475 +-Node: The Host part of a Logical Pathname Namestring1898865 +-Node: The Device part of a Logical Pathname Namestring1899510 +-Node: The Directory part of a Logical Pathname Namestring1900041 +-Node: The Type part of a Logical Pathname Namestring1900639 +-Node: The Version part of a Logical Pathname Namestring1901134 +-Node: Wildcard Words in a Logical Pathname Namestring1901786 +-Node: Lowercase Letters in a Logical Pathname Namestring1902301 +-Node: Other Syntax in a Logical Pathname Namestring1902741 +-Node: Logical Pathname Components1903256 +-Node: Unspecific Components of a Logical Pathname1903563 +-Node: Null Strings as Components of a Logical Pathname1903995 +-Node: Filenames Dictionary1904357 +-Node: pathname (System Class)1904913 +-Node: logical-pathname (System Class)1905357 +-Node: pathname1905980 +-Node: make-pathname1908718 +-Node: pathnamep1913243 +-Node: pathname-host1914123 +-Node: load-logical-pathname-translations1918886 +-Node: logical-pathname-translations1920745 +-Node: logical-pathname1928794 +-Node: *default-pathname-defaults*1930166 +-Node: namestring1931389 +-Node: parse-namestring1935356 +-Node: wild-pathname-p1940118 +-Node: pathname-match-p1942251 +-Node: translate-logical-pathname1943474 +-Node: translate-pathname1946158 +-Node: merge-pathnames1952787 +-Node: Files1957429 +-Node: File System Concepts1957580 +-Node: Coercion of Streams to Pathnames1958564 +-Node: File Operations on Open and Closed Streams1959501 +-Node: Truenames1960741 +-Node: Examples of Truenames1961656 +-Node: Files Dictionary1963226 +-Node: directory1963543 +-Node: probe-file1965097 +-Node: ensure-directories-exist1966363 +-Node: truename1967994 +-Node: file-author1970636 +-Node: file-write-date1971667 +-Node: rename-file1972937 +-Node: delete-file1975471 +-Node: file-error1977278 +-Node: file-error-pathname1978037 +-Node: Streams1978586 +-Node: Stream Concepts1978736 +-Node: Introduction to Streams1979022 +-Node: Abstract Classifications of Streams (Introduction to Streams)1980229 +-Node: Input1980484 +-Node: Open and Closed Streams1982112 +-Node: Interactive Streams1983068 +-Node: Abstract Classifications of Streams1984464 +-Node: File Streams1984696 +-Node: Other Subclasses of Stream1985400 +-Node: Stream Variables1986616 +-Node: Stream Arguments to Standardized Functions1987900 +-Node: Restrictions on Composite Streams1990428 +-Node: Streams Dictionary1990935 +-Node: stream1992212 +-Node: broadcast-stream1992805 +-Node: concatenated-stream1995590 +-Node: echo-stream1996835 +-Node: file-stream1997591 +-Node: string-stream1998159 +-Node: synonym-stream1998782 +-Node: two-way-stream1999606 +-Node: input-stream-p2000162 +-Node: interactive-stream-p2001281 +-Node: open-stream-p2002370 +-Node: stream-element-type2003270 +-Node: streamp2004636 +-Node: read-byte2005299 +-Node: write-byte2006741 +-Node: peek-char2007866 +-Node: read-char2010678 +-Node: read-char-no-hang2012513 +-Node: terpri2014718 +-Node: unread-char2016286 +-Node: write-char2018259 +-Node: read-line2019144 +-Node: write-string2021165 +-Node: read-sequence2022765 +-Node: write-sequence2025066 +-Node: file-length2026693 +-Node: file-position2027735 +-Node: file-string-length2031602 +-Node: open2032383 +-Node: stream-external-format2042146 +-Node: with-open-file2043086 +-Node: close2046380 +-Node: with-open-stream2048547 +-Node: listen2049797 +-Node: clear-input2050918 +-Node: finish-output2052772 +-Node: y-or-n-p2054465 +-Node: make-synonym-stream2057114 +-Node: synonym-stream-symbol2058222 +-Node: broadcast-stream-streams2058747 +-Node: make-broadcast-stream2059293 +-Node: make-two-way-stream2060359 +-Node: two-way-stream-input-stream2061434 +-Node: echo-stream-input-stream2062285 +-Node: make-echo-stream2063051 +-Node: concatenated-stream-streams2064124 +-Node: make-concatenated-stream2064908 +-Node: get-output-stream-string2065811 +-Node: make-string-input-stream2067399 +-Node: make-string-output-stream2068566 +-Node: with-input-from-string2069693 +-Node: with-output-to-string2072253 +-Node: *debug-io*2074947 +-Node: *terminal-io*2079648 +-Node: stream-error2081164 +-Node: stream-error-stream2081813 +-Node: end-of-file2082558 +-Node: Printer2083048 +-Node: The Lisp Printer2083249 +-Node: Overview of The Lisp Printer2083532 +-Node: Multiple Possible Textual Representations2084234 +-Node: Printer Escaping2086358 +-Node: Printer Dispatching2087282 +-Node: Default Print-Object Methods2087848 +-Node: Printing Numbers2088759 +-Node: Printing Integers2088953 +-Node: Printing Ratios2089686 +-Node: Printing Floats2090436 +-Node: Printing Complexes2092071 +-Node: Note about Printing Numbers2092571 +-Node: Printing Characters2092919 +-Node: Printing Symbols2093858 +-Node: Package Prefixes for Symbols2095381 +-Node: Effect of Readtable Case on the Lisp Printer2097274 +-Node: Examples of Effect of Readtable Case on the Lisp Printer2099127 +-Node: Printing Strings2102858 +-Node: Printing Lists and Conses2103489 +-Node: Printing Bit Vectors2105935 +-Node: Printing Other Vectors2106584 +-Node: Printing Other Arrays2108082 +-Node: Examples of Printing Arrays2110343 +-Node: Printing Random States2111067 +-Node: Printing Pathnames2111952 +-Node: Printing Structures2112539 +-Node: Printing Other Objects2113481 +-Node: Examples of Printer Behavior2114357 +-Node: The Lisp Pretty Printer2115868 +-Node: Pretty Printer Concepts2116168 +-Node: Dynamic Control of the Arrangement of Output2117782 +-Node: Format Directive Interface2120823 +-Node: Compiling Format Strings2122073 +-Node: Pretty Print Dispatch Tables2122706 +-Node: Pretty Printer Margins2124310 +-Node: Examples of using the Pretty Printer2124807 +-Node: Notes about the Pretty Printer`s Background2136508 +-Node: Formatted Output2137029 +-Node: FORMAT Basic Output2141681 +-Node: Tilde C-> Character2142008 +-Node: Tilde Percent-> Newline2143820 +-Node: Tilde Ampersand-> Fresh-Line2144174 +-Node: Tilde Vertical-Bar-> Page2144584 +-Node: Tilde Tilde-> Tilde2144875 +-Node: FORMAT Radix Control2145084 +-Node: Tilde R-> Radix2145397 +-Node: Tilde D-> Decimal2146667 +-Node: Tilde B-> Binary2147982 +-Node: Tilde O-> Octal2148419 +-Node: Tilde X-> Hexadecimal2148857 +-Node: FORMAT Floating-Point Printers2149290 +-Node: Tilde F-> Fixed-Format Floating-Point2149687 +-Node: Tilde E-> Exponential Floating-Point2153778 +-Node: Tilde G-> General Floating-Point2158895 +-Node: Tilde Dollarsign-> Monetary Floating-Point2160262 +-Node: FORMAT Printer Operations2162528 +-Node: Tilde A-> Aesthetic2162827 +-Node: Tilde S-> Standard2164066 +-Node: Tilde W-> Write2164493 +-Node: FORMAT Pretty Printer Operations2165301 +-Node: Tilde Underscore-> Conditional Newline2165739 +-Node: Tilde Less-Than-Sign-> Logical Block2166231 +-Node: Tilde I-> Indent2169749 +-Node: Tilde Slash-> Call Function2170115 +-Node: FORMAT Layout Control2171975 +-Node: Tilde T-> Tabulate2172310 +-Node: Tilde Less-Than-Sign-> Justification2174535 +-Node: Tilde Greater-Than-Sign-> End of Justification2177951 +-Node: FORMAT Control-Flow Operations2178284 +-Node: Tilde Asterisk-> Go-To2178773 +-Node: Tilde Left-Bracket-> Conditional Expression2179666 +-Node: Tilde Right-Bracket-> End of Conditional Expression2182176 +-Node: Tilde Left-Brace-> Iteration2182577 +-Node: Tilde Right-Brace-> End of Iteration2185861 +-Node: Tilde Question-Mark-> Recursive Processing2186216 +-Node: FORMAT Miscellaneous Operations2187573 +-Node: Tilde Left-Paren-> Case Conversion2187936 +-Node: Tilde Right-Paren-> End of Case Conversion2189225 +-Node: Tilde P-> Plural2189579 +-Node: FORMAT Miscellaneous Pseudo-Operations2190361 +-Node: Tilde Semicolon-> Clause Separator2190759 +-Node: Tilde Circumflex-> Escape Upward2191144 +-Node: Tilde Newline-> Ignored Newline2194588 +-Node: Additional Information about FORMAT Operations2196000 +-Node: Nesting of FORMAT Operations2196444 +-Node: Missing and Additional FORMAT Arguments2197835 +-Node: Additional FORMAT Parameters2198328 +-Node: Undefined FORMAT Modifier Combinations2198729 +-Node: Examples of FORMAT2199140 +-Node: Notes about FORMAT2203164 +-Node: Printer Dictionary2203806 +-Node: copy-pprint-dispatch2204575 +-Node: formatter2205320 +-Node: pprint-dispatch2206517 +-Node: pprint-exit-if-list-exhausted2208053 +-Node: pprint-fill2209651 +-Node: pprint-indent2213094 +-Node: pprint-logical-block2214955 +-Node: pprint-newline2220449 +-Node: pprint-pop2224793 +-Node: pprint-tab2228009 +-Node: print-object2229399 +-Node: print-unreadable-object2234169 +-Node: set-pprint-dispatch2235994 +-Node: write2238185 +-Node: write-to-string2242257 +-Node: *print-array*2244469 +-Node: *print-base*2245317 +-Node: *print-case*2247630 +-Node: *print-circle*2249989 +-Node: *print-escape*2251610 +-Node: *print-gensym*2252751 +-Node: *print-level*2253402 +-Node: *print-lines*2256487 +-Node: *print-miser-width*2257874 +-Node: *print-pprint-dispatch*2258420 +-Node: *print-pretty*2259730 +-Node: *print-readably*2261644 +-Node: *print-right-margin*2265421 +-Node: print-not-readable2266299 +-Node: print-not-readable-object2267145 +-Node: format2267721 +-Node: Reader2269485 +-Node: Reader Concepts2269645 +-Node: Dynamic Control of the Lisp Reader2269931 +-Node: Effect of Readtable Case on the Lisp Reader2270317 +-Node: Examples of Effect of Readtable Case on the Lisp Reader2271362 +-Node: Argument Conventions of Some Reader Functions2272883 +-Node: The EOF-ERROR-P argument2273204 +-Node: The RECURSIVE-P argument2274833 +-Node: Reader Dictionary2277604 +-Node: readtable2278124 +-Node: copy-readtable2278933 +-Node: make-dispatch-macro-character2280840 +-Node: read2282101 +-Node: read-delimited-list2287318 +-Node: read-from-string2291029 +-Node: readtable-case2293509 +-Node: readtablep2294711 +-Node: set-dispatch-macro-character2295384 +-Node: set-macro-character2298467 +-Node: set-syntax-from-char2301037 +-Node: with-standard-io-syntax2303156 +-Node: *read-base*2305176 +-Node: *read-default-float-format*2306531 +-Node: *read-eval*2308076 +-Node: *read-suppress*2308786 +-Node: *readtable*2312435 +-Node: reader-error2313495 +-Node: System Construction2314029 +-Node: System Construction Concepts2314245 +-Node: Loading2314497 +-Node: Features2315454 +-Node: Feature Expressions2315963 +-Node: Examples of Feature Expressions2316986 +-Node: System Construction Dictionary2318577 +-Node: compile-file2318984 +-Node: compile-file-pathname2323747 +-Node: load2325797 +-Node: with-compilation-unit2331390 +-Node: *features*2333616 +-Node: *compile-file-pathname*2339053 +-Node: *load-pathname*2340365 +-Node: *compile-print*2341587 +-Node: *load-print*2342189 +-Node: *modules*2342827 +-Node: provide2343385 +-Node: Environment2346236 +-Node: The External Environment2346437 +-Node: Top level loop2346704 +-Node: Debugging Utilities2347560 +-Node: Environment Inquiry2348056 +-Node: Time2348746 +-Node: Decoded Time2349986 +-Node: Universal Time2351555 +-Node: Internal Time2352611 +-Node: Seconds2353192 +-Node: Environment Dictionary2353737 +-Node: decode-universal-time2354443 +-Node: encode-universal-time2356390 +-Node: get-universal-time2357560 +-Node: sleep2359710 +-Node: apropos2360797 +-Node: describe2362343 +-Node: describe-object2364191 +-Node: trace2367094 +-Node: step2369975 +-Node: time2371307 +-Node: internal-time-units-per-second2373187 +-Node: get-internal-real-time2373799 +-Node: get-internal-run-time2374654 +-Node: disassemble2375992 +-Node: documentation2377376 +-Node: room2383694 +-Node: ed2384792 +-Node: inspect2386255 +-Node: dribble2387151 +-Node: - (Variable)2389031 +-Node: + (Variable)2389674 +-Node: * (Variable)2390745 +-Node: / (Variable)2392292 +-Node: lisp-implementation-type2393438 +-Node: short-site-name2394670 +-Node: machine-instance2395633 +-Node: machine-type2396440 +-Node: machine-version2397102 +-Node: software-type2397814 +-Node: user-homedir-pathname2398832 +-Node: Glossary (Glossary)2400458 +-Node: Glossary2400599 +-Node: Appendix2561441 +-Node: Removed Language Features2561579 +-Node: Requirements for removed and deprecated features2561942 +-Node: Removed Types2563145 +-Node: Removed Operators2563378 +-Node: Removed Argument Conventions2563757 +-Node: Removed Variables2564075 +-Node: Removed Reader Syntax2564439 +-Node: Packages No Longer Required2564695 ++Node: Introduction (Introduction)41175 ++Node: Scope41527 ++Node: Scope and Purpose41775 ++Node: History42218 ++Node: Organization of the Document51790 ++Node: Referenced Publications54045 ++Node: Definitions57704 ++Node: Notational Conventions58096 ++Node: Font Key58725 ++Node: Modified BNF Syntax60566 ++Node: Splicing in Modified BNF Syntax60941 ++Node: Indirection in Modified BNF Syntax63437 ++Node: Additional Uses for Indirect Definitions in Modified BNF Syntax64085 ++Node: Special Symbols65269 ++Node: Objects with Multiple Notations70066 ++Node: Case in Symbols70510 ++Node: Numbers (Objects with Multiple Notations)71680 ++Node: Use of the Dot Character72080 ++Node: NIL73022 ++Node: Designators75079 ++Node: Nonsense Words77490 ++Node: Error Terminology78169 ++Node: Sections Not Formally Part Of This Standard85492 ++Node: Interpreting Dictionary Entries87002 ++Node: The "Affected By" Section of a Dictionary Entry89401 ++Node: The "Arguments" Section of a Dictionary Entry89934 ++Node: The "Arguments and Values" Section of a Dictionary Entry90456 ++Node: The "Binding Types Affected" Section of a Dictionary Entry91219 ++Node: The "Class Precedence List" Section of a Dictionary Entry91907 ++Node: Dictionary Entries for Type Specifiers93083 ++Node: The "Compound Type Specifier Kind" Section of a Dictionary Entry94225 ++Node: The "Compound Type Specifier Syntax" Section of a Dictionary Entry95276 ++Node: The "Compound Type Specifier Arguments" Section of a Dictionary Entry95952 ++Node: The "Compound Type Specifier Description" Section of a Dictionary Entry96519 ++Node: The "Constant Value" Section of a Dictionary Entry97070 ++Node: The "Description" Section of a Dictionary Entry97524 ++Node: The "Examples" Section of a Dictionary Entry98049 ++Node: The "Exceptional Situations" Section of a Dictionary Entry98538 ++Node: The "Initial Value" Section of a Dictionary Entry99379 ++Node: The "Argument Precedence Order" Section of a Dictionary Entry99903 ++Node: The "Method Signature" Section of a Dictionary Entry100431 ++Node: The "Name" Section of a Dictionary Entry101967 ++Node: The "Notes" Section of a Dictionary Entry104027 ++Node: The "Pronunciation" Section of a Dictionary Entry104737 ++Node: The "See Also" Section of a Dictionary Entry105552 ++Node: The "Side Effects" Section of a Dictionary Entry106027 ++Node: The "Supertypes" Section of a Dictionary Entry106459 ++Node: The "Syntax" Section of a Dictionary Entry107096 ++Node: Special "Syntax" Notations for Overloaded Operators108285 ++Node: Naming Conventions for Rest Parameters109438 ++Node: Requiring Non-Null Rest Parameters in The "Syntax" Section110297 ++Node: Return values in The "Syntax" Section111197 ++Node: No Arguments or Values in The "Syntax" Section111887 ++Node: Unconditional Transfer of Control in The "Syntax" Section112488 ++Node: The "Valid Context" Section of a Dictionary Entry113058 ++Node: The "Value Type" Section of a Dictionary Entry113699 ++Node: Conformance114054 ++Node: Conforming Implementations114470 ++Node: Required Language Features115075 ++Node: Documentation of Implementation-Dependent Features115704 ++Node: Documentation of Extensions116431 ++Node: Treatment of Exceptional Situations117074 ++Node: Resolution of Apparent Conflicts in Exceptional Situations117473 ++Node: Examples of Resolution of Apparent Conflict in Exceptional Situations118143 ++Node: Conformance Statement119147 ++Node: Conforming Programs120130 ++Node: Use of Implementation-Defined Language Features121091 ++Node: Use of Read-Time Conditionals122307 ++Node: Language Extensions123458 ++Node: Language Subsets125871 ++Node: Deprecated Language Features126588 ++Node: Deprecated Functions127429 ++Node: Deprecated Argument Conventions127987 ++Node: Deprecated Variables128996 ++Node: Deprecated Reader Syntax129245 ++Node: Symbols in the COMMON-LISP Package129716 ++Node: Syntax152216 ++Node: Character Syntax152460 ++Node: Readtables153213 ++Node: The Current Readtable154046 ++Node: The Standard Readtable154631 ++Node: The Initial Readtable155168 ++Node: Variables that affect the Lisp Reader155623 ++Node: Standard Characters156176 ++Node: Character Syntax Types160623 ++Node: Constituent Characters164557 ++Node: Constituent Traits165172 ++Node: Invalid Characters168716 ++Node: Macro Characters169264 ++Node: Multiple Escape Characters172038 ++Node: Examples of Multiple Escape Characters172693 ++Node: Single Escape Character173198 ++Node: Examples of Single Escape Characters173693 ++Node: Whitespace Characters174187 ++Node: Examples of Whitespace Characters174536 ++Node: Reader Algorithm174902 ++Node: Interpretation of Tokens181408 ++Node: Numbers as Tokens181768 ++Node: Potential Numbers as Tokens182872 ++Node: Escape Characters and Potential Numbers185462 ++Node: Examples of Potential Numbers186227 ++Node: Constructing Numbers from Tokens187350 ++Node: Syntax of a Rational188151 ++Node: Syntax of an Integer188366 ++Node: Syntax of a Ratio188957 ++Node: Syntax of a Float190086 ++Node: Syntax of a Complex192583 ++Node: The Consing Dot193639 ++Node: Symbols as Tokens194163 ++Node: Valid Patterns for Tokens197656 ++Node: Package System Consistency Rules200995 ++Node: Standard Macro Characters202656 ++Node: Left-Parenthesis203428 ++Node: Right-Parenthesis204958 ++Node: Single-Quote205285 ++Node: Examples of Single-Quote205743 ++Node: Semicolon205980 ++Node: Examples of Semicolon206544 ++Node: Notes about Style for Semicolon206771 ++Node: Use of Single Semicolon207188 ++Node: Use of Double Semicolon207779 ++Node: Use of Triple Semicolon208277 ++Node: Use of Quadruple Semicolon208657 ++Node: Examples of Style for Semicolon209167 ++Node: Double-Quote210140 ++Node: Backquote211585 ++Node: Notes about Backquote215509 ++Node: Comma216580 ++Node: Sharpsign216871 ++Node: Sharpsign Backslash221424 ++Node: Sharpsign Single-Quote222587 ++Node: Sharpsign Left-Parenthesis223060 ++Node: Sharpsign Asterisk224580 ++Node: Examples of Sharpsign Asterisk225844 ++Node: Sharpsign Colon226262 ++Node: Sharpsign Dot226778 ++Node: Sharpsign B227456 ++Node: Sharpsign O227847 ++Node: Sharpsign X228254 ++Node: Sharpsign R228760 ++Node: Sharpsign C230054 ++Node: Sharpsign A231132 ++Node: Sharpsign S232329 ++Node: Sharpsign P233436 ++Node: Sharpsign Equal-Sign233853 ++Node: Sharpsign Sharpsign234374 ++Node: Sharpsign Plus235443 ++Node: Sharpsign Minus236485 ++Node: Sharpsign Vertical-Bar236845 ++Node: Examples of Sharpsign Vertical-Bar237212 ++Node: Notes about Style for Sharpsign Vertical-Bar240203 ++Node: Sharpsign Less-Than-Sign241173 ++Node: Sharpsign Whitespace241611 ++Node: Sharpsign Right-Parenthesis241998 ++Node: Re-Reading Abbreviated Expressions242298 ++Node: Evaluation and Compilation242791 ++Node: Evaluation243172 ++Node: Introduction to Environments244460 ++Node: The Global Environment245318 ++Node: Dynamic Environments245969 ++Node: Lexical Environments247128 ++Node: The Null Lexical Environment248353 ++Node: Environment Objects248867 ++Node: The Evaluation Model249834 ++Node: Form Evaluation250529 ++Node: Symbols as Forms250832 ++Node: Lexical Variables252879 ++Node: Dynamic Variables253910 ++Node: Constant Variables255655 ++Node: Symbols Naming Both Lexical and Dynamic Variables256371 ++Node: Conses as Forms257223 ++Node: Special Forms258170 ++Node: Macro Forms259683 ++Node: Function Forms261508 ++Node: Lambda Forms263957 ++Node: Self-Evaluating Objects264615 ++Node: Examples of Self-Evaluating Objects265337 ++Node: Lambda Expressions265798 ++Node: Closures and Lexical Binding266437 ++Node: Shadowing270193 ++Node: Extent273365 ++Node: Return Values275631 ++Node: Compilation276972 ++Node: Compiler Terminology277279 ++Node: Compilation Semantics281572 ++Node: Compiler Macros282255 ++Node: Purpose of Compiler Macros283915 ++Node: Naming of Compiler Macros285630 ++Node: When Compiler Macros Are Used286608 ++Node: Notes about the Implementation of Compiler Macros288249 ++Node: Minimal Compilation289366 ++Node: Semantic Constraints290542 ++Node: File Compilation294196 ++Node: Processing of Top Level Forms296169 ++Node: Processing of Defining Macros300631 ++Node: Constraints on Macros and Compiler Macros303137 ++Node: Literal Objects in Compiled Files303937 ++Node: Externalizable Objects305347 ++Node: Similarity of Literal Objects306975 ++Node: Similarity of Aggregate Objects307219 ++Node: Definition of Similarity307803 ++Node: Extensions to Similarity Rules312671 ++Node: Additional Constraints on Externalizable Objects313547 ++Node: Exceptional Situations in the Compiler318284 ++Node: Declarations320383 ++Node: Minimal Declaration Processing Requirements321170 ++Node: Declaration Specifiers322336 ++Node: Declaration Identifiers322838 ++Node: Shorthand notation for Type Declarations323653 ++Node: Declaration Scope324020 ++Node: Examples of Declaration Scope325993 ++Node: Lambda Lists329193 ++Node: Ordinary Lambda Lists331623 ++Node: Specifiers for the required parameters334087 ++Node: Specifiers for optional parameters334937 ++Node: A specifier for a rest parameter336118 ++Node: Specifiers for keyword parameters337123 ++Node: Suppressing Keyword Argument Checking341146 ++Node: Examples of Suppressing Keyword Argument Checking341837 ++Node: Specifiers for &aux variables343079 ++Node: Examples of Ordinary Lambda Lists343930 ++Node: Generic Function Lambda Lists347871 ++Node: Specialized Lambda Lists349198 ++Node: Macro Lambda Lists350503 ++Node: Destructuring by Lambda Lists355787 ++Node: Data-directed Destructuring by Lambda Lists356978 ++Node: Examples of Data-directed Destructuring by Lambda Lists357525 ++Node: Lambda-list-directed Destructuring by Lambda Lists358238 ++Node: Destructuring Lambda Lists361299 ++Node: Boa Lambda Lists362531 ++Node: Defsetf Lambda Lists366409 ++Node: Deftype Lambda Lists367323 ++Node: Define-modify-macro Lambda Lists367941 ++Node: Define-method-combination Arguments Lambda Lists368808 ++Node: Syntactic Interaction of Documentation Strings and Declarations369653 ++Node: Error Checking in Function Calls370404 ++Node: Argument Mismatch Detection370675 ++Node: Safe and Unsafe Calls371164 ++Node: Error Detection Time in Safe Calls373927 ++Node: Too Few Arguments374510 ++Node: Too Many Arguments375035 ++Node: Unrecognized Keyword Arguments375683 ++Node: Invalid Keyword Arguments376303 ++Node: Odd Number of Keyword Arguments376907 ++Node: Destructuring Mismatch377493 ++Node: Errors When Calling a Next Method378030 ++Node: Traversal Rules and Side Effects379005 ++Node: Destructive Operations380251 ++Node: Modification of Literal Objects380576 ++Node: Transfer of Control during a Destructive Operation382974 ++Node: Examples of Transfer of Control during a Destructive Operation383471 ++Node: Evaluation and Compilation Dictionary384353 ++Node: lambda (Symbol)385036 ++Node: lambda386238 ++Node: compile387360 ++Node: eval390581 ++Node: eval-when392523 ++Node: load-time-value398966 ++Node: quote404784 ++Node: compiler-macro-function406368 ++Node: define-compiler-macro407339 ++Node: defmacro414831 ++Node: macro-function421014 ++Node: macroexpand423270 ++Node: define-symbol-macro428337 ++Node: symbol-macrolet430903 ++Node: *macroexpand-hook*434034 ++Node: proclaim436300 ++Node: declaim438423 ++Node: declare439236 ++Node: ignore443268 ++Node: dynamic-extent445305 ++Node: type451698 ++Node: inline458475 ++Node: ftype462301 ++Node: declaration463835 ++Node: optimize464763 ++Node: special466919 ++Node: locally471407 ++Node: the473583 ++Node: special-operator-p475991 ++Node: constantp476912 ++Node: Types and Classes479952 ++Node: Introduction (Types and Classes)480214 ++Node: Types482372 ++Node: Data Type Definition482584 ++Node: Type Relationships483704 ++Node: Type Specifiers485629 ++Node: Classes493865 ++Node: Introduction to Classes494726 ++Node: Standard Metaclasses499454 ++Node: Defining Classes500413 ++Node: Creating Instances of Classes502085 ++Node: Inheritance502876 ++Node: Examples of Inheritance503340 ++Node: Inheritance of Class Options504317 ++Node: Determining the Class Precedence List505137 ++Node: Topological Sorting507197 ++Node: Examples of Class Precedence List Determination509630 ++Node: Redefining Classes513184 ++Node: Modifying the Structure of Instances516288 ++Node: Initializing Newly Added Local Slots (Redefining Classes)517473 ++Node: Customizing Class Redefinition519374 ++Node: Integrating Types and Classes520453 ++Node: Types and Classes Dictionary526717 ++Node: nil (Type)527486 ++Node: boolean527942 ++Node: function (System Class)528742 ++Node: compiled-function533458 ++Node: generic-function534297 ++Node: standard-generic-function535334 ++Node: class535857 ++Node: built-in-class536393 ++Node: structure-class537319 ++Node: standard-class537734 ++Node: method538132 ++Node: standard-method539271 ++Node: structure-object539702 ++Node: standard-object540301 ++Node: method-combination540739 ++Node: t (System Class)541398 ++Node: satisfies541764 ++Node: member (Type Specifier)542937 ++Node: not (Type Specifier)543952 ++Node: and (Type Specifier)544668 ++Node: or (Type Specifier)545506 ++Node: values (Type Specifier)546537 ++Node: eql (Type Specifier)547804 ++Node: coerce548579 ++Node: deftype553241 ++Node: subtypep556394 ++Node: type-of563359 ++Node: typep566275 ++Node: type-error569683 ++Node: type-error-datum570386 ++Node: simple-type-error571732 ++Node: Data and Control Flow572476 ++Node: Generalized Reference572741 ++Node: Overview of Places and Generalized Reference573068 ++Node: Evaluation of Subforms to Places575385 ++Node: Examples of Evaluation of Subforms to Places577890 ++Node: Setf Expansions578616 ++Node: Examples of Setf Expansions580686 ++Node: Kinds of Places582567 ++Node: Variable Names as Places583205 ++Node: Function Call Forms as Places583483 ++Node: VALUES Forms as Places591603 ++Node: THE Forms as Places592741 ++Node: APPLY Forms as Places593200 ++Node: Setf Expansions and Places594569 ++Node: Macro Forms as Places594989 ++Node: Symbol Macros as Places595523 ++Node: Other Compound Forms as Places595902 ++Node: Treatment of Other Macros Based on SETF596933 ++Node: Transfer of Control to an Exit Point598349 ++Node: Data and Control Flow Dictionary600484 ++Node: apply601718 ++Node: defun603751 ++Node: fdefinition607498 ++Node: fboundp609345 ++Node: fmakunbound611158 ++Node: flet612143 ++Node: funcall620017 ++Node: function (Special Operator)621726 ++Node: function-lambda-expression623809 ++Node: functionp627057 ++Node: compiled-function-p628015 ++Node: call-arguments-limit629162 ++Node: lambda-list-keywords629795 ++Node: lambda-parameters-limit630538 ++Node: defconstant631189 ++Node: defparameter634035 ++Node: destructuring-bind640614 ++Node: let641937 ++Node: progv645256 ++Node: setq646765 ++Node: psetq648453 ++Node: block650443 ++Node: catch652255 ++Node: go654948 ++Node: return-from656390 ++Node: return658674 ++Node: tagbody659667 ++Node: throw662078 ++Node: unwind-protect664746 ++Node: nil669983 ++Node: not670378 ++Node: t671228 ++Node: eq672215 ++Node: eql674637 ++Node: equal677618 ++Node: equalp681224 ++Node: identity685165 ++Node: complement685924 ++Node: constantly687628 ++Node: every688602 ++Node: and691597 ++Node: cond693357 ++Node: if695002 ++Node: or696259 ++Node: when697675 ++Node: case700275 ++Node: typecase705384 ++Node: multiple-value-bind710964 ++Node: multiple-value-call712831 ++Node: multiple-value-list714087 ++Node: multiple-value-prog1714908 ++Node: multiple-value-setq715865 ++Node: values717479 ++Node: values-list719415 ++Node: multiple-values-limit720397 ++Node: nth-value721223 ++Node: prog722516 ++Node: prog1726268 ++Node: progn728427 ++Node: define-modify-macro729814 ++Node: defsetf732298 ++Node: define-setf-expander738441 ++Node: get-setf-expansion743277 ++Node: setf745030 ++Node: shiftf747494 ++Node: rotatef750101 ++Node: control-error751822 ++Node: program-error752443 ++Node: undefined-function752989 ++Node: Iteration753594 ++Node: The LOOP Facility753768 ++Node: Overview of the Loop Facility754234 ++Node: Simple vs Extended Loop755015 ++Node: Simple Loop755316 ++Node: Extended Loop756009 ++Node: Loop Keywords756640 ++Node: Parsing Loop Clauses757574 ++Node: Expanding Loop Forms759197 ++Node: Summary of Loop Clauses761894 ++Node: Summary of Variable Initialization and Stepping Clauses762195 ++Node: Summary of Value Accumulation Clauses763028 ++Node: Summary of Termination Test Clauses764818 ++Node: Summary of Unconditional Execution Clauses766525 ++Node: Summary of Conditional Execution Clauses767245 ++Node: Summary of Miscellaneous Clauses768337 ++Node: Order of Execution769030 ++Node: Destructuring770902 ++Node: Restrictions on Side-Effects775322 ++Node: Variable Initialization and Stepping Clauses775559 ++Node: Iteration Control776411 ++Node: The for-as-arithmetic subclause779325 ++Node: Examples of for-as-arithmetic subclause783173 ++Node: The for-as-in-list subclause783926 ++Node: Examples of for-as-in-list subclause784720 ++Node: The for-as-on-list subclause785509 ++Node: Examples of for-as-on-list subclause786262 ++Node: The for-as-equals-then subclause786882 ++Node: Examples of for-as-equals-then subclause787640 ++Node: The for-as-across subclause788097 ++Node: Examples of for-as-across subclause788799 ++Node: The for-as-hash subclause789186 ++Node: The for-as-package subclause791408 ++Node: Examples of for-as-package subclause793972 ++Node: Local Variable Initializations794593 ++Node: Examples of WITH clause797436 ++Node: Value Accumulation Clauses798478 ++Node: Examples of COLLECT clause804315 ++Node: Examples of APPEND and NCONC clauses805068 ++Node: Examples of COUNT clause805689 ++Node: Examples of MAXIMIZE and MINIMIZE clauses806011 ++Node: Examples of SUM clause806882 ++Node: Termination Test Clauses807288 ++Node: Examples of REPEAT clause811458 ++Node: Examples of ALWAYS811985 ++Node: Examples of WHILE and UNTIL clauses814008 ++Node: Unconditional Execution Clauses814803 ++Node: Examples of unconditional execution815696 ++Node: Conditional Execution Clauses816192 ++Node: Examples of WHEN clause817897 ++Node: Miscellaneous Clauses819576 ++Node: Control Transfer Clauses819891 ++Node: Examples of NAMED clause820719 ++Node: Initial and Final Execution821110 ++Node: Examples of Miscellaneous Loop Features822739 ++Node: Examples of clause grouping823809 ++Node: Notes about Loop826256 ++Node: Iteration Dictionary827278 ++Node: do827483 ++Node: dotimes835924 ++Node: dolist839379 ++Node: loop841601 ++Node: loop-finish847061 ++Node: Objects849886 ++Node: Object Creation and Initialization850190 ++Node: Initialization Arguments854102 ++Node: Declaring the Validity of Initialization Arguments856709 ++Node: Defaulting of Initialization Arguments860208 ++Node: Rules for Initialization Arguments863479 ++Node: Shared-Initialize867330 ++Node: Initialize-Instance870012 ++Node: Definitions of Make-Instance and Initialize-Instance872747 ++Node: Changing the Class of an Instance874845 ++Node: Modifying the Structure of the Instance876097 ++Node: Initializing Newly Added Local Slots (Changing the Class of an Instance)877035 ++Node: Customizing the Change of Class of an Instance878772 ++Node: Reinitializing an Instance879575 ++Node: Customizing Reinitialization881038 ++Node: Meta-Objects881702 ++Node: Standard Meta-objects882228 ++Node: Slots883267 ++Node: Introduction to Slots883491 ++Node: Accessing Slots886129 ++Node: Inheritance of Slots and Slot Options888706 ++Node: Generic Functions and Methods893448 ++Node: Introduction to Generic Functions893943 ++Node: Introduction to Methods897445 ++Node: Agreement on Parameter Specializers and Qualifiers903907 ++Node: Congruent Lambda-lists for all Methods of a Generic Function904904 ++Node: Keyword Arguments in Generic Functions and Methods907046 ++Node: Examples of Keyword Arguments in Generic Functions and Methods908738 ++Node: Method Selection and Combination910077 ++Node: Determining the Effective Method911543 ++Node: Selecting the Applicable Methods912137 ++Node: Sorting the Applicable Methods by Precedence Order912478 ++Node: Applying method combination to the sorted list of applicable methods914543 ++Node: Standard Method Combination916710 ++Node: Declarative Method Combination921657 ++Node: Built-in Method Combination Types922568 ++Node: Inheritance of Methods926641 ++Node: Objects Dictionary927212 ++Node: function-keywords928220 ++Node: ensure-generic-function929847 ++Node: allocate-instance933155 ++Node: reinitialize-instance934682 ++Node: shared-initialize936917 ++Node: update-instance-for-different-class941425 ++Node: update-instance-for-redefined-class945563 ++Node: change-class950836 ++Node: slot-boundp954857 ++Node: slot-exists-p956639 ++Node: slot-makunbound957441 ++Node: slot-missing958979 ++Node: slot-unbound961318 ++Node: slot-value962990 ++Node: method-qualifiers965801 ++Node: no-applicable-method966598 ++Node: no-next-method967723 ++Node: remove-method968926 ++Node: make-instance969748 ++Node: make-instances-obsolete971163 ++Node: make-load-form972478 ++Node: make-load-form-saving-slots983995 ++Node: with-accessors985943 ++Node: with-slots988882 ++Node: defclass992251 ++Node: defgeneric1004461 ++Node: defmethod1015148 ++Node: find-class1022041 ++Node: next-method-p1024020 ++Node: call-method1025125 ++Node: call-next-method1028141 ++Node: compute-applicable-methods1031202 ++Node: define-method-combination1032264 ++Node: find-method1056016 ++Node: add-method1058673 ++Node: initialize-instance1059907 ++Node: class-name1061699 ++Node: setf class-name1062456 ++Node: class-of1063085 ++Node: unbound-slot1064089 ++Node: unbound-slot-instance1064757 ++Node: Structures1065325 ++Node: Structures Dictionary1065470 ++Node: defstruct1065650 ++Node: copy-structure1106426 ++Node: Conditions1107022 ++Node: Condition System Concepts1107197 ++Node: Condition Types1110806 ++Node: Serious Conditions1113222 ++Node: Creating Conditions1113603 ++Node: Condition Designators1114156 ++Node: Printing Conditions1115996 ++Node: Recommended Style in Condition Reporting1117339 ++Node: Capitalization and Punctuation in Condition Reports1118468 ++Node: Leading and Trailing Newlines in Condition Reports1119191 ++Node: Embedded Newlines in Condition Reports1120153 ++Node: Note about Tabs in Condition Reports1121326 ++Node: Mentioning Containing Function in Condition Reports1121951 ++Node: Signaling and Handling Conditions1122436 ++Node: Signaling1124701 ++Node: Resignaling a Condition1125890 ++Node: Restarts1126950 ++Node: Interactive Use of Restarts1129127 ++Node: Interfaces to Restarts1130323 ++Node: Restart Tests1131218 ++Node: Associating a Restart with a Condition1131698 ++Node: Assertions1132597 ++Node: Notes about the Condition System`s Background1133093 ++Node: Conditions Dictionary1133584 ++Node: condition1134599 ++Node: warning1136393 ++Node: style-warning1136750 ++Node: serious-condition1137954 ++Node: error (Condition Type)1139187 ++Node: cell-error1139552 ++Node: cell-error-name1140158 ++Node: parse-error1141153 ++Node: storage-condition1141623 ++Node: assert1143209 ++Node: error1147170 ++Node: cerror1150866 ++Node: check-type1155996 ++Node: simple-error1160285 ++Node: invalid-method-error1160784 ++Node: method-combination-error1162341 ++Node: signal1163471 ++Node: simple-condition1166032 ++Node: simple-condition-format-control1166961 ++Node: warn1168341 ++Node: simple-warning1170775 ++Node: invoke-debugger1171248 ++Node: break1172750 ++Node: *debugger-hook*1175191 ++Node: *break-on-signals*1177686 ++Node: handler-bind1180326 ++Node: handler-case1182917 ++Node: ignore-errors1188118 ++Node: define-condition1190012 ++Node: make-condition1201764 ++Node: restart1203073 ++Node: compute-restarts1203705 ++Node: find-restart1206469 ++Node: invoke-restart1208474 ++Node: invoke-restart-interactively1210215 ++Node: restart-bind1212534 ++Node: restart-case1216582 ++Node: restart-name1226400 ++Node: with-condition-restarts1227366 ++Node: with-simple-restart1228703 ++Node: abort (Restart)1232191 ++Node: continue1233185 ++Node: muffle-warning1234346 ++Node: store-value1235969 ++Node: use-value1237206 ++Node: abort (Function)1237843 ++Node: Symbols1244179 ++Node: Symbol Concepts1244335 ++Node: Symbols Dictionary1244920 ++Node: symbol1245350 ++Node: keyword1250363 ++Node: symbolp1250963 ++Node: keywordp1251717 ++Node: make-symbol1252601 ++Node: copy-symbol1254216 ++Node: gensym1256661 ++Node: *gensym-counter*1258973 ++Node: gentemp1259743 ++Node: symbol-function1262595 ++Node: symbol-name1265564 ++Node: symbol-package1266267 ++Node: symbol-plist1268124 ++Node: symbol-value1269340 ++Node: get1271355 ++Node: remprop1274615 ++Node: boundp1277243 ++Node: makunbound1278237 ++Node: set1279004 ++Node: unbound-variable1280748 ++Node: Packages1281319 ++Node: Package Concepts1281486 ++Node: Introduction to Packages1281699 ++Node: Package Names and Nicknames1283498 ++Node: Symbols in a Package1284269 ++Node: Internal and External Symbols1284482 ++Node: Package Inheritance1285397 ++Node: Accessibility of Symbols in a Package1286347 ++Node: Locating a Symbol in a Package1287960 ++Node: Prevention of Name Conflicts in Packages1288579 ++Node: Standardized Packages1291943 ++Node: The COMMON-LISP Package1292882 ++Node: Constraints on the COMMON-LISP Package for Conforming Implementations1294217 ++Node: Constraints on the COMMON-LISP Package for Conforming Programs1295763 ++Node: Some Exceptions to Constraints on the COMMON-LISP Package for Conforming Programs1297874 ++Node: The COMMON-LISP-USER Package1299721 ++Node: The KEYWORD Package1300320 ++Node: Interning a Symbol in the KEYWORD Package1301183 ++Node: Notes about The KEYWORD Package1301773 ++Node: Implementation-Defined Packages1302696 ++Node: Packages Dictionary1303265 ++Node: package1303937 ++Node: export1304390 ++Node: find-symbol1307472 ++Node: find-package1309901 ++Node: find-all-symbols1310927 ++Node: import1311923 ++Node: list-all-packages1314430 ++Node: rename-package1315104 ++Node: shadow1316392 ++Node: shadowing-import1318770 ++Node: delete-package1320702 ++Node: make-package1325721 ++Node: with-package-iterator1327773 ++Node: unexport1333420 ++Node: unintern1334980 ++Node: in-package1337075 ++Node: unuse-package1338048 ++Node: use-package1339465 ++Node: defpackage1341554 ++Node: do-symbols1349903 ++Node: intern1353485 ++Node: package-name1355830 ++Node: package-nicknames1356886 ++Node: package-shadowing-symbols1357665 ++Node: package-use-list1358897 ++Node: package-used-by-list1359795 ++Node: packagep1360669 ++Node: *package*1361322 ++Node: package-error1362695 ++Node: package-error-package1363354 ++Node: Numbers (Numbers)1364052 ++Node: Number Concepts1364218 ++Node: Numeric Operations1364596 ++Node: Associativity and Commutativity in Numeric Operations1366616 ++Node: Examples of Associativity and Commutativity in Numeric Operations1367739 ++Node: Contagion in Numeric Operations1369399 ++Node: Viewing Integers as Bits and Bytes1369916 ++Node: Logical Operations on Integers1370170 ++Node: Byte Operations on Integers1371250 ++Node: Implementation-Dependent Numeric Constants1372046 ++Node: Rational Computations1373233 ++Node: Rule of Unbounded Rational Precision1373645 ++Node: Rule of Canonical Representation for Rationals1374100 ++Node: Rule of Float Substitutability1375211 ++Node: Floating-point Computations1377613 ++Node: Rule of Float and Rational Contagion1378093 ++Node: Examples of Rule of Float and Rational Contagion1378990 ++Node: Rule of Float Approximation1380054 ++Node: Rule of Float Underflow and Overflow1381236 ++Node: Rule of Float Precision Contagion1381678 ++Node: Complex Computations1382029 ++Node: Rule of Complex Substitutability1382516 ++Node: Rule of Complex Contagion1382917 ++Node: Rule of Canonical Representation for Complex Rationals1383324 ++Node: Examples of Rule of Canonical Representation for Complex Rationals1384188 ++Node: Principal Values and Branch Cuts1384853 ++Node: Interval Designators1386887 ++Node: Random-State Operations1388402 ++Node: Numbers Dictionary1388752 ++Node: number1390123 ++Node: complex (System Class)1391285 ++Node: real1393529 ++Node: float (System Class)1394688 ++Node: short-float1397350 ++Node: rational (System Class)1401340 ++Node: ratio1402376 ++Node: integer1402975 ++Node: signed-byte1404347 ++Node: unsigned-byte1405384 ++Node: mod (System Class)1406514 ++Node: bit (System Class)1407260 ++Node: fixnum1407621 ++Node: bignum1408112 ++Node: =1408418 ++Node: max1411823 ++Node: minusp1413901 ++Node: zerop1414833 ++Node: floor1415820 ++Node: sin1420683 ++Node: asin1421514 ++Node: pi1428348 ++Node: sinh1429458 ++Node: *1434005 ++Node: +1434843 ++Node: -1435644 ++Node: /1436805 ++Node: 1+1438436 ++Node: abs1439402 ++Node: evenp1440849 ++Node: exp1441767 ++Node: gcd1444968 ++Node: incf1446004 ++Node: lcm1447200 ++Node: log1448318 ++Node: mod (Function)1450488 ++Node: signum1451810 ++Node: sqrt1453482 ++Node: random-state1455567 ++Node: make-random-state1456412 ++Node: random1458355 ++Node: random-state-p1459856 ++Node: *random-state*1460629 ++Node: numberp1462059 ++Node: cis1462734 ++Node: complex1463310 ++Node: complexp1464963 ++Node: conjugate1465617 ++Node: phase1466396 ++Node: realpart1467956 ++Node: upgraded-complex-part-type1468955 ++Node: realp1469939 ++Node: numerator1470572 ++Node: rational (Function)1471637 ++Node: rationalp1473201 ++Node: ash1473870 ++Node: integer-length1475377 ++Node: integerp1477041 ++Node: parse-integer1477691 ++Node: boole1479808 ++Node: boole-11484328 ++Node: logand1485439 ++Node: logbitp1489419 ++Node: logcount1490614 ++Node: logtest1492033 ++Node: byte1493106 ++Node: deposit-field1494361 ++Node: dpb1495391 ++Node: ldb1496839 ++Node: ldb-test1498449 ++Node: mask-field1499290 ++Node: most-positive-fixnum1500948 ++Node: decode-float1501622 ++Node: float1507401 ++Node: floatp1508340 ++Node: most-positive-short-float1508974 ++Node: short-float-epsilon1513275 ++Node: arithmetic-error1514660 ++Node: arithmetic-error-operands1515414 ++Node: division-by-zero1516335 ++Node: floating-point-invalid-operation1516813 ++Node: floating-point-inexact1517601 ++Node: floating-point-overflow1518356 ++Node: floating-point-underflow1518865 ++Node: Characters1519348 ++Node: Character Concepts1519524 ++Node: Introduction to Characters1520018 ++Node: Introduction to Scripts and Repertoires1521423 ++Node: Character Scripts1521731 ++Node: Character Repertoires1522744 ++Node: Character Attributes1523655 ++Node: Character Categories1524663 ++Node: Graphic Characters1525886 ++Node: Alphabetic Characters1526813 ++Node: Characters With Case1527476 ++Node: Uppercase Characters1527930 ++Node: Lowercase Characters1528385 ++Node: Corresponding Characters in the Other Case1528859 ++Node: Case of Implementation-Defined Characters1529390 ++Node: Numeric Characters1529891 ++Node: Alphanumeric Characters1530399 ++Node: Digits in a Radix1530718 ++Node: Identity of Characters1531446 ++Node: Ordering of Characters1531716 ++Node: Character Names1533506 ++Node: Treatment of Newline during Input and Output1534649 ++Node: Character Encodings1535200 ++Node: Documentation of Implementation-Defined Scripts1535998 ++Node: Characters Dictionary1537469 ++Node: character (System Class)1537972 ++Node: base-char1538583 ++Node: standard-char1540567 ++Node: extended-char1541107 ++Node: char=1541568 ++Node: character1547732 ++Node: characterp1548611 ++Node: alpha-char-p1549549 ++Node: alphanumericp1550720 ++Node: digit-char1552115 ++Node: digit-char-p1553235 ++Node: graphic-char-p1554735 ++Node: standard-char-p1555621 ++Node: char-upcase1556469 ++Node: upper-case-p1558907 ++Node: char-code1560456 ++Node: char-int1561183 ++Node: code-char1562179 ++Node: char-code-limit1562941 ++Node: char-name1563601 ++Node: name-char1565525 ++Node: Conses1566403 ++Node: Cons Concepts1566551 ++Node: Conses as Trees1567087 ++Node: General Restrictions on Parameters that must be Trees1568055 ++Node: Conses as Lists1568489 ++Node: Lists as Association Lists1569888 ++Node: Lists as Sets1570415 ++Node: General Restrictions on Parameters that must be Lists1570965 ++Node: Conses Dictionary1571622 ++Node: list (System Class)1572384 ++Node: null (System Class)1573618 ++Node: cons (System Class)1574110 ++Node: atom (Type)1575340 ++Node: cons1575580 ++Node: consp1576497 ++Node: atom1577219 ++Node: rplaca1577926 ++Node: car1579066 ++Node: copy-tree1585451 ++Node: sublis1587080 ++Node: subst1590826 ++Node: tree-equal1595215 ++Node: copy-list1596998 ++Node: list (Function)1598320 ++Node: list-length1599948 ++Node: listp1601858 ++Node: make-list1602663 ++Node: push1603625 ++Node: pop1604871 ++Node: first1606170 ++Node: nth1609047 ++Node: endp1610106 ++Node: null1611507 ++Node: nconc1612317 ++Node: append1614458 ++Node: revappend1615592 ++Node: butlast1617783 ++Node: last1619619 ++Node: ldiff1621387 ++Node: nthcdr1625022 ++Node: rest1626157 ++Node: member (Function)1627141 ++Node: mapc1629444 ++Node: acons1633682 ++Node: assoc1634701 ++Node: copy-alist1637953 ++Node: pairlis1639231 ++Node: rassoc1640756 ++Node: get-properties1642890 ++Node: getf1644274 ++Node: remf1647145 ++Node: intersection1648500 ++Node: adjoin1652442 ++Node: pushnew1654388 ++Node: set-difference1657133 ++Node: set-exclusive-or1660510 ++Node: subsetp1663608 ++Node: union1665634 ++Node: Arrays1668735 ++Node: Array Concepts1668881 ++Node: Array Elements1669069 ++Node: Array Indices1669626 ++Node: Array Dimensions1670041 ++Node: Implementation Limits on Individual Array Dimensions1670631 ++Node: Array Rank1671056 ++Node: Vectors1671541 ++Node: Fill Pointers1671747 ++Node: Multidimensional Arrays1672479 ++Node: Storage Layout for Multidimensional Arrays1672690 ++Node: Implementation Limits on Array Rank1673204 ++Node: Specialized Arrays1673578 ++Node: Array Upgrading1674894 ++Node: Required Kinds of Specialized Arrays1676276 ++Node: Arrays Dictionary1677769 ++Node: array1678584 ++Node: simple-array1681636 ++Node: vector (System Class)1683589 ++Node: simple-vector1685689 ++Node: bit-vector1686702 ++Node: simple-bit-vector1687747 ++Node: make-array1688733 ++Node: adjust-array1697412 ++Node: adjustable-array-p1705423 ++Node: aref1706399 ++Node: array-dimension1708090 ++Node: array-dimensions1708957 ++Node: array-element-type1709811 ++Node: array-has-fill-pointer-p1711203 ++Node: array-displacement1712361 ++Node: array-in-bounds-p1714042 ++Node: array-rank1715223 ++Node: array-row-major-index1716001 ++Node: array-total-size1717525 ++Node: arrayp1718807 ++Node: fill-pointer1719570 ++Node: row-major-aref1720729 ++Node: upgraded-array-element-type1721827 ++Node: array-dimension-limit1723434 ++Node: array-rank-limit1723963 ++Node: array-total-size-limit1724457 ++Node: simple-vector-p1725225 ++Node: svref1725986 ++Node: vector1727060 ++Node: vector-pop1727966 ++Node: vector-push1729237 ++Node: vectorp1732069 ++Node: bit (Array)1732777 ++Node: bit-and1734123 ++Node: bit-vector-p1738320 ++Node: simple-bit-vector-p1739125 ++Node: Strings1739835 ++Node: String Concepts1739988 ++Node: Implications of Strings Being Arrays1740204 ++Node: Subtypes of STRING1740693 ++Node: Strings Dictionary1741100 ++Node: string (System Class)1741439 ++Node: base-string1742511 ++Node: simple-string1743461 ++Node: simple-base-string1744504 ++Node: simple-string-p1745418 ++Node: char1746179 ++Node: string1747726 ++Node: string-upcase1748993 ++Node: string-trim1753054 ++Node: string=1754701 ++Node: stringp1760241 ++Node: make-string1760862 ++Node: Sequences1761806 ++Node: Sequence Concepts1762003 ++Node: General Restrictions on Parameters that must be Sequences1763639 ++Node: Rules about Test Functions1764024 ++Node: Satisfying a Two-Argument Test1764293 ++Node: Examples of Satisfying a Two-Argument Test1766749 ++Node: Satisfying a One-Argument Test1768051 ++Node: Examples of Satisfying a One-Argument Test1769922 ++Node: Sequences Dictionary1770519 ++Node: sequence1770958 ++Node: copy-seq1771665 ++Node: elt1772826 ++Node: fill1773912 ++Node: make-sequence1775311 ++Node: subseq1777425 ++Node: map1779522 ++Node: map-into1782389 ++Node: reduce1785277 ++Node: count1788589 ++Node: length1790685 ++Node: reverse1791676 ++Node: sort1793824 ++Node: find1799277 ++Node: position1801845 ++Node: search1804006 ++Node: mismatch1805939 ++Node: replace1808251 ++Node: substitute1810566 ++Node: concatenate1816520 ++Node: merge1818698 ++Node: remove1822848 ++Node: remove-duplicates1829260 ++Node: Hash Tables1832770 ++Node: Hash Table Concepts1832946 ++Node: Hash-Table Operations1833178 ++Node: Modifying Hash Table Keys1835195 ++Node: Visible Modification of Objects with respect to EQ and EQL1837104 ++Node: Visible Modification of Objects with respect to EQUAL1837565 ++Node: Visible Modification of Conses with respect to EQUAL1838160 ++Node: Visible Modification of Bit Vectors and Strings with respect to EQUAL1838647 ++Node: Visible Modification of Objects with respect to EQUALP1839308 ++Node: Visible Modification of Structures with respect to EQUALP1839918 ++Node: Visible Modification of Arrays with respect to EQUALP1840399 ++Node: Visible Modification of Hash Tables with respect to EQUALP1841003 ++Node: Visible Modifications by Language Extensions1841712 ++Node: Hash Tables Dictionary1842472 ++Node: hash-table1842894 ++Node: make-hash-table1843671 ++Node: hash-table-p1846591 ++Node: hash-table-count1847338 ++Node: hash-table-rehash-size1848737 ++Node: hash-table-rehash-threshold1850255 ++Node: hash-table-size1851307 ++Node: hash-table-test1852085 ++Node: gethash1852948 ++Node: remhash1855115 ++Node: maphash1855963 ++Node: with-hash-table-iterator1857806 ++Node: clrhash1861243 ++Node: sxhash1862097 ++Node: Filenames1865079 ++Node: Overview of Filenames1865283 ++Node: Namestrings as Filenames1866082 ++Node: Pathnames as Filenames1867175 ++Node: Parsing Namestrings Into Pathnames1870523 ++Node: Pathnames1871265 ++Node: Pathname Components1871503 ++Node: The Pathname Host Component1871991 ++Node: The Pathname Device Component1872299 ++Node: The Pathname Directory Component1872680 ++Node: The Pathname Name Component1873029 ++Node: The Pathname Type Component1873346 ++Node: The Pathname Version Component1873759 ++Node: Interpreting Pathname Component Values1874408 ++Node: Strings in Component Values1875612 ++Node: Special Characters in Pathname Components1875883 ++Node: Case in Pathname Components1876787 ++Node: Local Case in Pathname Components1877573 ++Node: Common Case in Pathname Components1878372 ++Node: Special Pathname Component Values1879165 ++Node: NIL as a Component Value1879433 ++Node: ->WILD as a Component Value1879977 ++Node: ->UNSPECIFIC as a Component Value1881008 ++Node: Relation between component values NIL and ->UNSPECIFIC1882399 ++Node: Restrictions on Wildcard Pathnames1883246 ++Node: Restrictions on Examining Pathname Components1884109 ++Node: Restrictions on Examining a Pathname Host Component1885157 ++Node: Restrictions on Examining a Pathname Device Component1885596 ++Node: Restrictions on Examining a Pathname Directory Component1886300 ++Node: Directory Components in Non-Hierarchical File Systems1889825 ++Node: Restrictions on Examining a Pathname Name Component1890473 ++Node: Restrictions on Examining a Pathname Type Component1890900 ++Node: Restrictions on Examining a Pathname Version Component1891328 ++Node: Notes about the Pathname Version Component1892307 ++Node: Restrictions on Constructing Pathnames1892919 ++Node: Merging Pathnames1894461 ++Node: Examples of Merging Pathnames1895239 ++Node: Logical Pathnames1896119 ++Node: Syntax of Logical Pathname Namestrings1896358 ++Node: Additional Information about Parsing Logical Pathname Namestrings1898298 ++Node: The Host part of a Logical Pathname Namestring1898688 ++Node: The Device part of a Logical Pathname Namestring1899333 ++Node: The Directory part of a Logical Pathname Namestring1899864 ++Node: The Type part of a Logical Pathname Namestring1900462 ++Node: The Version part of a Logical Pathname Namestring1900957 ++Node: Wildcard Words in a Logical Pathname Namestring1901609 ++Node: Lowercase Letters in a Logical Pathname Namestring1902124 ++Node: Other Syntax in a Logical Pathname Namestring1902564 ++Node: Logical Pathname Components1903079 ++Node: Unspecific Components of a Logical Pathname1903386 ++Node: Null Strings as Components of a Logical Pathname1903818 ++Node: Filenames Dictionary1904180 ++Node: pathname (System Class)1904736 ++Node: logical-pathname (System Class)1905180 ++Node: pathname1905803 ++Node: make-pathname1908541 ++Node: pathnamep1913066 ++Node: pathname-host1913946 ++Node: load-logical-pathname-translations1918709 ++Node: logical-pathname-translations1920568 ++Node: logical-pathname1928617 ++Node: *default-pathname-defaults*1929989 ++Node: namestring1931212 ++Node: parse-namestring1935179 ++Node: wild-pathname-p1939941 ++Node: pathname-match-p1942074 ++Node: translate-logical-pathname1943297 ++Node: translate-pathname1945981 ++Node: merge-pathnames1952610 ++Node: Files1957252 ++Node: File System Concepts1957403 ++Node: Coercion of Streams to Pathnames1958386 ++Node: File Operations on Open and Closed Streams1959323 ++Node: Truenames1960561 ++Node: Examples of Truenames1961476 ++Node: Files Dictionary1963046 ++Node: directory1963363 ++Node: probe-file1964917 ++Node: ensure-directories-exist1966183 ++Node: truename1967814 ++Node: file-author1970456 ++Node: file-write-date1971487 ++Node: rename-file1972757 ++Node: delete-file1975291 ++Node: file-error1977098 ++Node: file-error-pathname1977857 ++Node: Streams1978406 ++Node: Stream Concepts1978556 ++Node: Introduction to Streams1978842 ++Node: Abstract Classifications of Streams (Introduction to Streams)1980048 ++Node: Input1980303 ++Node: Open and Closed Streams1981928 ++Node: Interactive Streams1982884 ++Node: Abstract Classifications of Streams1984280 ++Node: File Streams1984512 ++Node: Other Subclasses of Stream1985216 ++Node: Stream Variables1986431 ++Node: Stream Arguments to Standardized Functions1987714 ++Node: Restrictions on Composite Streams1990240 ++Node: Streams Dictionary1990747 ++Node: stream1992024 ++Node: broadcast-stream1992617 ++Node: concatenated-stream1995402 ++Node: echo-stream1996647 ++Node: file-stream1997403 ++Node: string-stream1997971 ++Node: synonym-stream1998594 ++Node: two-way-stream1999418 ++Node: input-stream-p1999974 ++Node: interactive-stream-p2001093 ++Node: open-stream-p2002182 ++Node: stream-element-type2003082 ++Node: streamp2004448 ++Node: read-byte2005111 ++Node: write-byte2006553 ++Node: peek-char2007678 ++Node: read-char2010490 ++Node: read-char-no-hang2012325 ++Node: terpri2014530 ++Node: unread-char2016098 ++Node: write-char2018071 ++Node: read-line2018956 ++Node: write-string2020977 ++Node: read-sequence2022577 ++Node: write-sequence2024878 ++Node: file-length2026505 ++Node: file-position2027547 ++Node: file-string-length2031414 ++Node: open2032195 ++Node: stream-external-format2041958 ++Node: with-open-file2042898 ++Node: close2046192 ++Node: with-open-stream2048359 ++Node: listen2049609 ++Node: clear-input2050730 ++Node: finish-output2052584 ++Node: y-or-n-p2054277 ++Node: make-synonym-stream2056926 ++Node: synonym-stream-symbol2058034 ++Node: broadcast-stream-streams2058559 ++Node: make-broadcast-stream2059105 ++Node: make-two-way-stream2060171 ++Node: two-way-stream-input-stream2061246 ++Node: echo-stream-input-stream2062097 ++Node: make-echo-stream2062863 ++Node: concatenated-stream-streams2063936 ++Node: make-concatenated-stream2064720 ++Node: get-output-stream-string2065623 ++Node: make-string-input-stream2067211 ++Node: make-string-output-stream2068378 ++Node: with-input-from-string2069505 ++Node: with-output-to-string2072065 ++Node: *debug-io*2074759 ++Node: *terminal-io*2079460 ++Node: stream-error2080976 ++Node: stream-error-stream2081625 ++Node: end-of-file2082370 ++Node: Printer2082860 ++Node: The Lisp Printer2083061 ++Node: Overview of The Lisp Printer2083344 ++Node: Multiple Possible Textual Representations2084046 ++Node: Printer Escaping2086168 ++Node: Printer Dispatching2087092 ++Node: Default Print-Object Methods2087658 ++Node: Printing Numbers2088569 ++Node: Printing Integers2088763 ++Node: Printing Ratios2089496 ++Node: Printing Floats2090246 ++Node: Printing Complexes2091881 ++Node: Note about Printing Numbers2092381 ++Node: Printing Characters2092729 ++Node: Printing Symbols2093668 ++Node: Package Prefixes for Symbols2095191 ++Node: Effect of Readtable Case on the Lisp Printer2097084 ++Node: Examples of Effect of Readtable Case on the Lisp Printer2098937 ++Node: Printing Strings2102668 ++Node: Printing Lists and Conses2103299 ++Node: Printing Bit Vectors2105745 ++Node: Printing Other Vectors2106394 ++Node: Printing Other Arrays2107892 ++Node: Examples of Printing Arrays2110153 ++Node: Printing Random States2110877 ++Node: Printing Pathnames2111762 ++Node: Printing Structures2112349 ++Node: Printing Other Objects2113291 ++Node: Examples of Printer Behavior2114167 ++Node: The Lisp Pretty Printer2115678 ++Node: Pretty Printer Concepts2115978 ++Node: Dynamic Control of the Arrangement of Output2117592 ++Node: Format Directive Interface2120633 ++Node: Compiling Format Strings2121881 ++Node: Pretty Print Dispatch Tables2122514 ++Node: Pretty Printer Margins2124118 ++Node: Examples of using the Pretty Printer2124615 ++Node: Notes about the Pretty Printer`s Background2136316 ++Node: Formatted Output2136837 ++Node: FORMAT Basic Output2141488 ++Node: Tilde C-> Character2141815 ++Node: Tilde Percent-> Newline2143627 ++Node: Tilde Ampersand-> Fresh-Line2143981 ++Node: Tilde Vertical-Bar-> Page2144391 ++Node: Tilde Tilde-> Tilde2144682 ++Node: FORMAT Radix Control2144891 ++Node: Tilde R-> Radix2145204 ++Node: Tilde D-> Decimal2146474 ++Node: Tilde B-> Binary2147789 ++Node: Tilde O-> Octal2148226 ++Node: Tilde X-> Hexadecimal2148664 ++Node: FORMAT Floating-Point Printers2149097 ++Node: Tilde F-> Fixed-Format Floating-Point2149494 ++Node: Tilde E-> Exponential Floating-Point2153585 ++Node: Tilde G-> General Floating-Point2158702 ++Node: Tilde Dollarsign-> Monetary Floating-Point2160069 ++Node: FORMAT Printer Operations2162335 ++Node: Tilde A-> Aesthetic2162634 ++Node: Tilde S-> Standard2163873 ++Node: Tilde W-> Write2164300 ++Node: FORMAT Pretty Printer Operations2165108 ++Node: Tilde Underscore-> Conditional Newline2165546 ++Node: Tilde Less-Than-Sign-> Logical Block2166038 ++Node: Tilde I-> Indent2169556 ++Node: Tilde Slash-> Call Function2169922 ++Node: FORMAT Layout Control2171782 ++Node: Tilde T-> Tabulate2172117 ++Node: Tilde Less-Than-Sign-> Justification2174342 ++Node: Tilde Greater-Than-Sign-> End of Justification2177758 ++Node: FORMAT Control-Flow Operations2178091 ++Node: Tilde Asterisk-> Go-To2178580 ++Node: Tilde Left-Bracket-> Conditional Expression2179473 ++Node: Tilde Right-Bracket-> End of Conditional Expression2181983 ++Node: Tilde Left-Brace-> Iteration2182384 ++Node: Tilde Right-Brace-> End of Iteration2185668 ++Node: Tilde Question-Mark-> Recursive Processing2186023 ++Node: FORMAT Miscellaneous Operations2187380 ++Node: Tilde Left-Paren-> Case Conversion2187743 ++Node: Tilde Right-Paren-> End of Case Conversion2189032 ++Node: Tilde P-> Plural2189386 ++Node: FORMAT Miscellaneous Pseudo-Operations2190168 ++Node: Tilde Semicolon-> Clause Separator2190566 ++Node: Tilde Circumflex-> Escape Upward2190951 ++Node: Tilde Newline-> Ignored Newline2194395 ++Node: Additional Information about FORMAT Operations2195807 ++Node: Nesting of FORMAT Operations2196251 ++Node: Missing and Additional FORMAT Arguments2197642 ++Node: Additional FORMAT Parameters2198135 ++Node: Undefined FORMAT Modifier Combinations2198536 ++Node: Examples of FORMAT2198947 ++Node: Notes about FORMAT2202971 ++Node: Printer Dictionary2203613 ++Node: copy-pprint-dispatch2204382 ++Node: formatter2205127 ++Node: pprint-dispatch2206324 ++Node: pprint-exit-if-list-exhausted2207860 ++Node: pprint-fill2209458 ++Node: pprint-indent2212901 ++Node: pprint-logical-block2214762 ++Node: pprint-newline2220256 ++Node: pprint-pop2224600 ++Node: pprint-tab2227816 ++Node: print-object2229206 ++Node: print-unreadable-object2233976 ++Node: set-pprint-dispatch2235801 ++Node: write2237992 ++Node: write-to-string2242063 ++Node: *print-array*2244275 ++Node: *print-base*2245123 ++Node: *print-case*2247436 ++Node: *print-circle*2249795 ++Node: *print-escape*2251416 ++Node: *print-gensym*2252557 ++Node: *print-level*2253208 ++Node: *print-lines*2256293 ++Node: *print-miser-width*2257680 ++Node: *print-pprint-dispatch*2258226 ++Node: *print-pretty*2259536 ++Node: *print-readably*2261450 ++Node: *print-right-margin*2265227 ++Node: print-not-readable2266105 ++Node: print-not-readable-object2266951 ++Node: format2267527 ++Node: Reader2269291 ++Node: Reader Concepts2269451 ++Node: Dynamic Control of the Lisp Reader2269737 ++Node: Effect of Readtable Case on the Lisp Reader2270123 ++Node: Examples of Effect of Readtable Case on the Lisp Reader2271168 ++Node: Argument Conventions of Some Reader Functions2272689 ++Node: The EOF-ERROR-P argument2273010 ++Node: The RECURSIVE-P argument2274639 ++Node: Reader Dictionary2277410 ++Node: readtable2277930 ++Node: copy-readtable2278739 ++Node: make-dispatch-macro-character2280646 ++Node: read2281907 ++Node: read-delimited-list2287124 ++Node: read-from-string2290835 ++Node: readtable-case2293315 ++Node: readtablep2294517 ++Node: set-dispatch-macro-character2295190 ++Node: set-macro-character2298273 ++Node: set-syntax-from-char2300843 ++Node: with-standard-io-syntax2302962 ++Node: *read-base*2304981 ++Node: *read-default-float-format*2306336 ++Node: *read-eval*2307881 ++Node: *read-suppress*2308591 ++Node: *readtable*2312240 ++Node: reader-error2313300 ++Node: System Construction2313834 ++Node: System Construction Concepts2314050 ++Node: Loading2314302 ++Node: Features2315259 ++Node: Feature Expressions2315768 ++Node: Examples of Feature Expressions2316791 ++Node: System Construction Dictionary2318381 ++Node: compile-file2318788 ++Node: compile-file-pathname2323551 ++Node: load2325601 ++Node: with-compilation-unit2331194 ++Node: *features*2333420 ++Node: *compile-file-pathname*2338857 ++Node: *load-pathname*2340169 ++Node: *compile-print*2341391 ++Node: *load-print*2341993 ++Node: *modules*2342631 ++Node: provide2343189 ++Node: Environment2346040 ++Node: The External Environment2346241 ++Node: Top level loop2346508 ++Node: Debugging Utilities2347363 ++Node: Environment Inquiry2347858 ++Node: Time2348547 ++Node: Decoded Time2349786 ++Node: Universal Time2351354 ++Node: Internal Time2352409 ++Node: Seconds2352989 ++Node: Environment Dictionary2353533 ++Node: decode-universal-time2354239 ++Node: encode-universal-time2356186 ++Node: get-universal-time2357356 ++Node: sleep2359506 ++Node: apropos2360593 ++Node: describe2362139 ++Node: describe-object2363987 ++Node: trace2366890 ++Node: step2369771 ++Node: time2371103 ++Node: internal-time-units-per-second2372983 ++Node: get-internal-real-time2373595 ++Node: get-internal-run-time2374450 ++Node: disassemble2375788 ++Node: documentation2377172 ++Node: room2383490 ++Node: ed2384588 ++Node: inspect2386051 ++Node: dribble2386947 ++Node: - (Variable)2388827 ++Node: + (Variable)2389470 ++Node: * (Variable)2390541 ++Node: / (Variable)2392088 ++Node: lisp-implementation-type2393234 ++Node: short-site-name2394466 ++Node: machine-instance2395429 ++Node: machine-type2396236 ++Node: machine-version2396898 ++Node: software-type2397610 ++Node: user-homedir-pathname2398628 ++Node: Glossary (Glossary)2399940 ++Node: Glossary2400395 ++Node: Appendix2561234 ++Node: Removed Language Features2561372 ++Node: Requirements for removed and deprecated features2561735 ++Node: Removed Types2562938 ++Node: Removed Operators2563171 ++Node: Removed Argument Conventions2563550 ++Node: Removed Variables2563868 ++Node: Removed Reader Syntax2564232 ++Node: Packages No Longer Required2564488 +  + End Tag Table + +--- gcl27-2.7.1.orig/info/gcl.info-1 ++++ gcl27-2.7.1/info/gcl.info-1 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -11,7 +11,10 @@ START-INFO-DIR-ENTRY + END-INFO-DIR-ENTRY + +  +-File: gcl.info, Node: Top, Next: Introduction (Introduction), Prev: (dir), Up: (dir) ++File: gcl.info, Node: Top, Next: Introduction (Introduction), Up: (dir) ++ ++Top ++*** + + * Menu: + +@@ -2159,8 +2162,8 @@ Implementation. For further information + Non-Hierarchical Approach to Object-Oriented Programming. + + These systems influenced the design of the Common Lisp Object System +-(CLOS). CLOS was developed specifically for this standardization effort, +-and was separately written up in Common Lisp Object System ++(CLOS). CLOS was developed specifically for this standardization ++effort, and was separately written up in Common Lisp Object System + Specification. However, minor details of its design have changed + slightly since that publication, and that paper should not be taken as + an authoritative reference to the semantics of the object system as +@@ -2261,7 +2264,7 @@ File: gcl.info, Node: Referenced Public + + * + Common Lisp Object System Specification, D. Bobrow, L. DiMichiel, +- R.P. Gabriel, S. Keene, G. Kiczales, D. Moon, SIGPLAN Notices V23, ++ R.P. Gabriel, S. Keene, G. Kiczales, D. Moon, SIGPLAN Notices V23, + September, 1988. + + * +@@ -2343,7 +2346,7 @@ File: gcl.info, Node: Referenced Public + + * + Smalltalk-80: The Language and its Implementation, A. Goldberg and +- D. Robson, Addison-Wesley, 1983. ++ D. Robson, Addison-Wesley, 1983. + + * + Standard LISP Report, J.B. Marti, A.C. Hearn, M.L. Griss, and C. +@@ -2820,7 +2823,6 @@ of its many roles it is playing. + + Figure 1-1: Notations for NIL + +- + Within this document only, nil is also sometimes notated as false to + emphasize its role as a boolean. + +@@ -4025,7 +4027,6 @@ The functions in Figure 1-2 are deprecat + + Figure 1-2: Deprecated Functions + +- +  + File: gcl.info, Node: Deprecated Argument Conventions, Next: Deprecated Variables, Prev: Deprecated Functions, Up: Deprecated Language Features + +@@ -4049,7 +4050,6 @@ The ability to pass a numeric argument t + + Figure 1-3: Functions with Deprecated :TEST-NOT Arguments + +- + The use of the situation names compile, load, and eval in eval-when + is deprecated. + +@@ -4123,7 +4123,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-4: Symbols in the COMMON-LISP package (part one of twelve). + +- + adjoin atom boundp + adjust-array base-char break + adjustable-array-p base-string broadcast-stream +@@ -4165,7 +4164,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-5: Symbols in the COMMON-LISP package (part two of twelve). + +- + cddadr clear-input copy-tree + cddar clear-output cos + cdddar close cosh +@@ -4207,7 +4205,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-6: Symbols in the COMMON-LISP package (part three of twelve). + +- + denominator eq + deposit-field eql + describe equal +@@ -4249,7 +4246,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-7: Symbols in the COMMON-LISP package (part four of twelve). + +- + find-symbol get-internal-run-time + finish-output get-macro-character + first get-output-stream-string +@@ -4291,7 +4287,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-8: Symbols in the COMMON-LISP package (part five of twelve). + +- + intern lisp-implementation-type + internal-time-units-per-second lisp-implementation-version + intersection list +@@ -4333,7 +4328,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-9: Symbols in the COMMON-LISP package (part six of twelve). + +- + machine-version mask-field + macro-function max + macroexpand member +@@ -4375,7 +4369,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-10: Symbols in the COMMON-LISP package (part seven of twelve). + +- + nintersection package-error + ninth package-error-package + no-applicable-method package-name +@@ -4417,7 +4410,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-11: Symbols in the COMMON-LISP package (part eight of twelve). + +- + pprint-tab read-char + pprint-tabular read-char-no-hang + prin1 read-delimited-list +@@ -4459,7 +4451,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-12: Symbols in the COMMON-LISP package (part nine of twelve). + +- + room simple-bit-vector + rotatef simple-bit-vector-p + round simple-condition +@@ -4501,7 +4492,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-13: Symbols in the COMMON-LISP package (part ten of twelve). + +- + standard-class sublis + standard-generic-function subseq + standard-method subsetp +@@ -4543,7 +4533,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-14: Symbols in the COMMON-LISP package (part eleven of twelve). + +- + truncate values-list + two-way-stream variable + two-way-stream-input-stream vector +@@ -4580,7 +4569,6 @@ the 978 external symbols in the COMMON-L + + Figure 1-15: Symbols in the COMMON-LISP package (part twelve of twelve). + +- +  + File: gcl.info, Node: Syntax, Next: Evaluation and Compilation, Prev: Introduction (Introduction), Up: Top + +@@ -4638,7 +4626,6 @@ readtables. + + Figure 2-1: Readtable defined names + +- + * Menu: + + * The Current Readtable:: +@@ -4699,7 +4686,6 @@ influence the behavior of the Lisp reade + + Figure 2-2: Variables that influence the Lisp reader. + +- +  + File: gcl.info, Node: Standard Characters, Next: Character Syntax Types, Prev: Variables that affect the Lisp Reader, Up: Character Syntax + +@@ -4744,7 +4730,6 @@ ninety-four graphic characters or their + + Figure 2-3: Standard Character Subrepertoire (Part 1 of 3: Latin Characters) + +- + Graphic ID Glyph Description Graphic ID Glyph Description + ND01 1 digit 1 ND06 6 digit 6 + ND02 2 digit 2 ND07 7 digit 7 +@@ -4754,7 +4739,6 @@ ninety-four graphic characters or their + + Figure 2-4: Standard Character Subrepertoire (Part 2 of 3: Numeric Characters) + +- + Graphic ID Glyph Description + SP02 ! exclamation mark + SC03 $ dollar sign +@@ -4791,7 +4775,6 @@ ninety-four graphic characters or their + + Figure 2-5: Standard Character Subrepertoire (Part 3 of 3: Special Characters) + +- + The graphic IDs are not used within Common Lisp, but are provided for + cross reference purposes with ISO 6937/2. Note that the first letter of + the graphic ID categorizes the character as follows: L--Latin, +@@ -4820,7 +4803,6 @@ one of the syntax types shown in Figure~ + + Figure 2-6: Possible Character Syntax Types + +- + The syntax type of a character in a readtable determines how that + character is interpreted by the Lisp reader while that readtable is the + current readtable. At any given time, every character has exactly one +@@ -4855,7 +4837,6 @@ syntax. + + Figure 2-7: Character Syntax Types in Standard Syntax + +- + The characters marked with an asterisk (*) are initially + constituents, but they are not used in any standard Common Lisp + notations. These characters are explicitly reserved to the programmer. +@@ -5399,7 +5380,6 @@ implementation is permitted, but not req + + Figure 2-10: Examples of reserved tokens + +- + The tokens in Figure 2-11 are not potential numbers; they are always + treated as symbols: + +@@ -5408,7 +5388,6 @@ treated as symbols: + + Figure 2-11: Examples of symbols + +- + The tokens in Figure 2-12 are potential numbers if the current input + base is 16, but they are always treated as symbols if the current input + base is 10. +@@ -5417,7 +5396,6 @@ base is 10. + + Figure 2-12: Examples of symbols or potential numbers + +- +  + File: gcl.info, Node: Constructing Numbers from Tokens, Next: The Consing Dot, Prev: Numbers as Tokens, Up: Interpretation of Tokens + +@@ -5489,7 +5467,6 @@ Figure 2-13. + + Figure 2-13: Examples of Ratios + +- + [Reviewer Note by Barmar: #o, #3r, #X, and #x mentioned above are not + in the syntax rules defined just above that.] + +@@ -5545,7 +5522,6 @@ external representation. + + Figure 2-14: Examples of Floating-point numbers + +- + For information on how floats are printed, see *note Printing + Floats::. + +@@ -5624,7 +5600,6 @@ case of the current readtable is :upcase + + Figure 2-15: Examples of the printed representation of symbols (Part 1 of 2) + +- + APL\\360 The symbol whose name is APL\360. + apl\\360 Also the symbol whose name is APL\360. + \(b^2\)\ -\ 4*a*c The name is (B^2) - 4*A*C. +@@ -5644,7 +5619,6 @@ case of the current readtable is :upcase + + Figure 2-16: Examples of the printed representation of symbols (Part 2 of 2) + +- + In the process of parsing a symbol, it is implementation-dependent + which implementation-defined attributes are removed from the characters + forming a token that represents a symbol. +@@ -5683,7 +5657,6 @@ The valid patterns for tokens are summar + + Figure 2-17: Valid patterns for tokens + +- + Note that nnnnn has number syntax, neither xxxxx nor ppppp has number + syntax, and aaaaa has any syntax. + +@@ -6031,7 +6004,6 @@ characters are removed in this process. + + Figure 2-18: Examples of the use of double-quote + +- + Note that to place a single escape character or a double-quote into a + string, such a character must be preceded by a single escape character. + Note, too, that a multiple escape character need not be quoted by a +@@ -6252,7 +6224,6 @@ are described later in this section and + + Figure 2-19: Standard # Dispatching Macro Character Syntax + +- + The combinations marked by an asterisk (*) are explicitly reserved to + the user. No conforming implementation defines them. + +@@ -6537,7 +6508,6 @@ point suffices. + + Figure 2-20: Radix Indicator Example + +- + The consequences are undefined if the token immediately following the + #nR does not have the syntax of a rational in radix n. + +@@ -6568,7 +6538,6 @@ complex. + + Figure 2-21: Complex Number Example + +- + For further information, see *note Printing Complexes:: and *note + Syntax of a Complex::. + +@@ -7163,7 +7132,6 @@ assigning, binding, and defining variabl + + Figure 3-1: Some Defined Names Applicable to Variables + +- + The following is a description of each kind of variable. + +  +@@ -7326,7 +7294,6 @@ operators. + + Figure 3-2: Common Lisp Special Operators + +- +  + File: gcl.info, Node: Macro Forms, Next: Function Forms, Prev: Special Forms, Up: The Evaluation Model + +@@ -7368,7 +7335,6 @@ is also provided. + + Figure 3-3: Defined names applicable to macros + +- +  + File: gcl.info, Node: Function Forms, Next: Lambda Forms, Prev: Macro Forms, Up: The Evaluation Model + +@@ -7426,7 +7392,6 @@ in the lexical environment can be establ + + Figure 3-4: Some function-related defined names + +- +  + File: gcl.info, Node: Lambda Forms, Next: Self-Evaluating Objects, Prev: Function Forms, Up: The Evaluation Model + +@@ -7742,7 +7707,6 @@ where to put the values returned by thos + + Figure 3-5: Some operators applicable to receiving multiple values + +- + The function values can produce multiple values_2. (values) returns + zero values; (values form) returns the primary value returned by form; + (values form1 form2) returns two values, the primary value of form1 and +@@ -7915,7 +7879,6 @@ of the original form. + + Figure 3-6: Defined names applicable to compiler macros + +- +  + File: gcl.info, Node: Purpose of Compiler Macros, Next: Naming of Compiler Macros, Prev: Compiler Macros, Up: Compilation Semantics + +--- gcl27-2.7.1.orig/info/gcl.info-2 ++++ gcl27-2.7.1/info/gcl.info-2 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -63,7 +63,6 @@ only when the defining macros appear at + + Figure 3-8: Defining Macros That Affect the Compile-Time Environment + +- +  + File: gcl.info, Node: Constraints on Macros and Compiler Macros, Prev: Processing of Defining Macros, Up: File Compilation + +@@ -528,7 +527,6 @@ Figure 3-9 shows a list of all declarati + + Figure 3-9: Common Lisp Declaration Identifiers + +- + An implementation is free to support other (implementation-defined) + declaration identifiers as well. A warning might be issued if a + declaration identifier is not among those defined above, is not defined +@@ -710,7 +708,6 @@ parameters. + + Figure 3-10: What Kind of Lambda Lists to Use + +- + Figure 3-11 lists some defined names that are applicable to lambda + lists. + +@@ -718,7 +715,6 @@ lists. + + Figure 3-11: Defined names applicable to lambda lists + +- + * Menu: + + * Ordinary Lambda Lists:: +@@ -749,7 +745,6 @@ those which use ordinary lambda lists: + + Figure 3-12: Standardized Operators that use Ordinary Lambda Lists + +- + An ordinary lambda list can contain the lambda list keywords shown in + Figure 3-13. + +@@ -758,7 +753,6 @@ Figure 3-13. + + Figure 3-13: Lambda List Keywords used by Ordinary Lambda Lists + +- + Each element of a lambda list is either a parameter specifier or a + lambda list keyword. Implementations are free to provide additional + lambda list keywords. For a list of all lambda list keywords used by +@@ -1099,7 +1093,6 @@ shown in Figure 3-14. + + Figure 3-14: Lambda List Keywords used by Generic Function Lambda Lists + +- + A generic function lambda list differs from an ordinary lambda list + in the following ways: + +@@ -1129,7 +1122,6 @@ each for information about how. + + Figure 3-15: Standardized Operators that use Specialized Lambda Lists + +- + A specialized lambda list can contain the lambda list keywords shown + in Figure 3-16. + +@@ -1138,7 +1130,6 @@ in Figure 3-16. + + Figure 3-16: Lambda List Keywords used by Specialized Lambda Lists + +- + A specialized lambda list is syntactically the same as an ordinary + lambda list except that each required parameter may optionally be + associated with a class or object for which that parameter is +@@ -1164,7 +1155,6 @@ operators in Figure 3-17. + + Figure 3-17: Operators that use Macro Lambda Lists + +- + With the additional restriction that an environment parameter may + appear only once (at any of the positions indicated), a macro lambda + list has the following syntax: +@@ -1200,7 +1190,6 @@ Figure 3-18. + + Figure 3-18: Lambda List Keywords used by Macro Lambda Lists + +- + Optional parameters (introduced by &optional) and keyword parameters + (introduced by &key) can be supplied in a macro lambda list, just as in + an ordinary lambda list. Both may contain default initialization forms +@@ -1576,7 +1565,6 @@ Figure 3-19. + + Figure 3-19: Lambda List Keywords used by Defsetf Lambda Lists + +- + A defsetf lambda list differs from an ordinary lambda list only in + that it does not permit the use of &aux, and that it permits use of + &environment, which introduces an environment parameter. +@@ -1612,7 +1600,6 @@ keywords shown in Figure 3-20. + + Figure 3-20: Lambda List Keywords used by Define-modify-macro Lambda Lists + +- + Define-modify-macro lambda lists are similar to ordinary lambda + lists, but do not support keyword arguments. define-modify-macro has no + need match keyword arguments, and a rest parameter is sufficient. Aux +@@ -1637,7 +1624,6 @@ lambda list keywords shown in Figure 3-2 + + Figure 3-21: Lambda List Keywords used by Define-method-combination arguments Lambda Lists + +- + Define-method-combination arguments lambda lists are similar to + ordinary lambda lists, but also permit the use of &whole. + +@@ -3589,7 +3575,6 @@ with proclaim. + + Figure 3-22: Global Declaration Specifiers + +- + An implementation is free to support other (implementation-defined) + declaration identifiers as well. + +@@ -3707,7 +3692,6 @@ the forms listed in Figure 3-23. + + Figure 3-23: Standardized Forms In Which Declarations Can Occur + +- + A declare expression can only occur where specified by the syntax of + these forms. The consequences of attempting to evaluate a declare + expression are undefined. In situations where such expressions can +@@ -3727,7 +3711,6 @@ with declare. + + Figure 3-24: Local Declaration Specifiers + +- + An implementation is free to support other (implementation-defined) + declaration identifiers as well. + +@@ -3928,7 +3911,6 @@ f. + (flet ((g (x) (declare (dynamic-extent x)) ...)) + (g (list 1 2 3)))) + +- + In the previous example, some compilers might determine that + optimization was possible and others might not. + +@@ -4491,7 +4473,6 @@ standard optimize qualities are shown in + + Figure 3-25: Optimize qualities + +- + There may be other, implementation-defined optimize qualities. + + A value 0 means that the corresponding quality is totally +@@ -5026,20 +5007,21 @@ Figure~4-1. Figure~4-7 lists some class + relevant to the object system. Figure~9-1 lists the defined condition + types. + +- Section Data Type +- _________________________________________________________________________ +- *note Classes:: Object System types +- *note Slots:: Object System types +- *note Objects:: Object System types +- *note Generic Functions and Methods:: Object System types +- *note Condition System Concepts:: Condition System types +- *note Types and Classes:: Miscellaneous types +- *note Syntax:: All types--read and print syntax +- *note The Lisp Printer:: All types--print syntax +- *note Compilation:: All types--compilation issues + +- Figure 4-1: Cross-References to Data Type Information ++Section Data Type ++-------------------------------------------------------------------------- ++*note Classes:: Object System types ++*note Slots:: Object System types ++*note Objects:: Object System types ++*note Generic Functions and Methods:: Object System types ++*note Condition System Concepts:: Condition System types ++*note Types and Classes:: Miscellaneous types ++*note Syntax:: All types--read and print syntax ++*note The Lisp Printer:: All types--print syntax ++*note Compilation:: All types--compilation issues ++ + ++ Figure 4-1: Cross-References to Data Type Information + +  + File: gcl.info, Node: Type Relationships, Next: Type Specifiers, Prev: Data Type Definition, Up: Types +@@ -5141,7 +5123,6 @@ define-condition, defstruct, or deftype. + + Figure 4-2: Standardized Atomic Type Specifiers + +- + \indent If a type specifier is a list, the car of the list is a + symbol, and the rest of the list is subsidiary type information. Such a + type specifier is called a compound type specifier . Except as +@@ -5185,7 +5166,6 @@ abbreviated to (vector) and then to vect + + Figure 4-3: Standardized Compound Type Specifier Names + +- + Figure 4-4 show the defined names that can be used as compound type + specifier names but that cannot be used as atomic type specifiers. + +@@ -5195,7 +5175,6 @@ specifier names but that cannot be used + + Figure 4-4: Standardized Compound-Only Type Specifier Names + +- + New type specifiers can come into existence in two ways. + + * +@@ -5221,7 +5200,6 @@ declarations. + + Figure 4-5: Defined names relating to types and declarations. + +- + Figure 4-6 shows all defined names that are type specifier names, + whether for atomic type specifiers or compound type specifiers; this + list is the union of the lists in Figure~4-2 and Figure~4-3. +@@ -5264,7 +5242,6 @@ list is the union of the lists in Figure + + Figure 4-6: Standardized Type Specifier Names + +- +  + File: gcl.info, Node: Classes, Next: Types and Classes Dictionary, Prev: Types, Up: Types and Classes + +@@ -5283,7 +5260,6 @@ understanding the object system. + + Figure 4-7: Object System Classes + +- + * Menu: + + * Introduction to Classes:: +@@ -5975,7 +5951,6 @@ type specifiers. + + Figure 4-8: Classes that correspond to pre-defined type specifiers + +- + The class precedence list information specified in the entries for + each of these classes are those that are required by the object system. + +@@ -7050,7 +7025,6 @@ result. + + Figure 4-9: Result possibilities for subtypep + +- + subtypep is permitted to return the values false and false only when + at least one argument involves one of these type specifiers: and, eql, + the list form of function, member, not, or, satisfies, or values. (A +@@ -7246,7 +7220,6 @@ element. The typespec satisfies the fol + Examples:: + .......... + +- + (type-of 'a) ⇒ SYMBOL + (type-of '(1 . 2)) + ⇒ CONS +@@ -7391,7 +7364,6 @@ Implementations are encouraged to recogn + expansion of deftype information at runtime. + + +- +  + File: gcl.info, Node: type-error, Next: type-error-datum, Prev: typep, Up: Types and Classes Dictionary + +@@ -7553,7 +7525,6 @@ value or values being stored. + + Figure 5-1: Examples of setf + +- + Figure 5-2 shows operators relating to places and generalized + reference. + +@@ -7566,7 +7537,6 @@ reference. + + Figure 5-2: Operators relating to places and generalized reference. + +- + Some of the operators above manipulate places and some manipulate + setf expanders. A setf expansion can be derived from any place. + +@@ -7742,7 +7712,6 @@ Examples of the contents of the constitu + + Figure 5-3: Sample Setf Expansion of a Variable + +- + For (car exp): + + (g0002) ;list of temporary variables +@@ -7753,7 +7722,6 @@ Examples of the contents of the constitu + + Figure 5-4: Sample Setf Expansion of a CAR Form + +- + For (subseq seq s e): + + (g0004 g0005 g0006) ;list of temporary variables +@@ -7765,7 +7733,6 @@ Examples of the contents of the constitu + + Figure 5-5: Sample Setf Expansion of a SUBSEQ Form + +- + In some cases, if a subform of a place is itself a place, it is + necessary to expand the subform in order to compute some of the values + in the expansion of the outer place. For (ldb bs (car exp)): +@@ -7779,7 +7746,6 @@ in the expansion of the outer place. Fo + + Figure 5-6: Sample Setf Expansion of a LDB Form + +- +  + File: gcl.info, Node: Kinds of Places, Next: Treatment of Other Macros Based on SETF, Prev: Overview of Places and Generalized Reference, Up: Generalized Reference + +@@ -7856,7 +7822,6 @@ following categories: + + Figure 5-7: Functions that setf can be used with--1 + +- + In the case of subseq, the replacement value must be a sequence + whose elements might be contained by the sequence argument to + subseq, but does not have to be a sequence of the same type as the +@@ -7886,7 +7851,6 @@ following categories: + + Figure 5-8: Functions that setf can be used with--2 + +- + During the setf expansion of these forms, it is necessary to call + + get-setf-expansion +@@ -8203,7 +8167,6 @@ form with the following general syntax: + + Figure 5-9: Read-Modify-Write Macros + +- +  + File: gcl.info, Node: Transfer of Control to an Exit Point, Next: Data and Control Flow Dictionary, Prev: Generalized Reference, Up: Data and Control Flow + +--- gcl27-2.7.1.orig/info/gcl.info-3 ++++ gcl27-2.7.1/info/gcl.info-3 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -2093,7 +2093,6 @@ The macros in Figure 5-10 have implicit + + Figure 5-10: Macros that have implicit tagbodies. + +- +  + File: gcl.info, Node: throw, Next: unwind-protect, Prev: tagbody, Up: Data and Control Flow Dictionary + +@@ -2132,7 +2131,6 @@ Examples:: + (loop (incf j 3) (incf i) + (if (= i 3) (throw 'result (values i j))))) ⇒ 3, 9 + +- + (catch nil + (unwind-protect (throw nil 1) + (throw nil 2))) ⇒ 2 +@@ -2541,7 +2539,6 @@ them: + + Figure 5-11: Operators that always prefer EQ over EQL + +- +  + File: gcl.info, Node: eql, Next: equal, Prev: eq, Up: Data and Control Flow Dictionary + +@@ -2703,7 +2700,6 @@ behavior of equal, with upper entries ta + + Figure 5-12: Summary and priorities of behavior of equal + +- + Any two objects that are eql are also equal. + + equal may fail to terminate if x or y is circular. +@@ -2820,7 +2816,6 @@ behavior of equalp, with upper entries t + + Figure 5-13: Summary and priorities of behavior of equalp + +- + Examples:: + .......... + +@@ -4886,7 +4881,6 @@ Examples:: + (flet ((frob (x) (cdr x))) ;Invalid + (xpop (frob z))) + +- + See Also:: + .......... + +@@ -6007,7 +6001,6 @@ File: gcl.info, Node: Examples of for-a + |> 3 + ⇒ NIL + +- +  + File: gcl.info, Node: The for-as-equals-then subclause, Next: Examples of for-as-equals-then subclause, Prev: Examples of for-as-on-list subclause, Up: Variable Initialization and Stepping Clauses + +@@ -6752,7 +6745,6 @@ File: gcl.info, Node: Examples of uncon + |> 9 + ⇒ NIL + +- +  + File: gcl.info, Node: Conditional Execution Clauses, Next: Miscellaneous Clauses, Prev: Unconditional Execution Clauses, Up: The LOOP Facility + +@@ -7731,7 +7723,6 @@ Examples:: + (tokenize-sentence "this is a sentence") + ⇒ ("this" "is" "a" "sentence"), NIL + +- + Side Effects:: + .............. + +@@ -8107,7 +8098,6 @@ nor evaluated. + (make-instance 'r 'b 4) (b 4 a 1) 4 + (make-instance 'r 'a 1 'a 2) (a 1 a 2 b 2) 1 + +- +  + File: gcl.info, Node: Shared-Initialize, Next: Initialize-Instance, Prev: Rules for Initialization Arguments, Up: Object Creation and Initialization + +@@ -8768,7 +8758,6 @@ method-defining operators are listed in + + Figure 7-2: Standardized Method-Defining Operators + +- + Note that of the standardized method-defining operators only + defgeneric can specify generic function options. defgeneric and any + implementation-defined operators that can specify generic function +--- gcl27-2.7.1.orig/info/gcl.info-4 ++++ gcl27-2.7.1/info/gcl.info-4 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -431,7 +431,6 @@ Figure 7-3. + + Figure 7-3: Built-in Method Combination Types + +- + The semantics of the standard built-in method combination type is + described in *note Standard Method Combination::. The other built-in + method combination types are called simple built-in method combination +@@ -1190,7 +1189,6 @@ Examples:: + theta (atan new-y x)) + new-y))) + +- + Exceptional Situations:: + ........................ + +@@ -1307,7 +1305,6 @@ Examples:: + ;;; on the value of the x and y slots, which were maintained by + ;;; the old instance. + +- + See Also:: + .......... + +@@ -2397,7 +2394,6 @@ A with-accessors expression of the form: + + (with-accessors (slot-entry_1 ...slot-entry_n) instance-form form_1 ...form_k) + +- + expands into the equivalent of + + +@@ -2405,7 +2401,6 @@ expands into the equivalent of + + (symbol-macrolet (Q_1... Q_n) form_1 ...form_k)) + +- + where Q_i is + + (variable-name_i () +@@ -2509,7 +2504,6 @@ A with-slots expression of the form: + + (with-slots (slot-entry_1 ...slot-entry_n) instance-form form_1 ...form_k) + +- + expands into the equivalent of + + +@@ -2517,7 +2511,6 @@ expands into the equivalent of + + (symbol-macrolet (Q_1... Q_n) form_1 ...form_k)) + +- + where Q_i is + + (slot-entry_i () +@@ -4022,7 +4015,6 @@ the declarative method combination facil + methods)) + (unlock (object-lock ,object)))) + +- + Side Effects:: + .............. + +@@ -5536,7 +5528,6 @@ types can be defined by using define-con + + Figure 9-1: Standardized Condition Types + +- + All condition types are subtypes of type condition. That is, + + (typep c 'condition) ⇒ true +@@ -5560,7 +5551,6 @@ conditions. + + Figure 9-2: Operators that define and create conditions. + +- + Figure 9-3 shows operators that read the value of condition slots. + + arithmetic-error-operands simple-condition-format-arguments +@@ -5572,7 +5562,6 @@ conditions. + + Figure 9-3: Operators that read condition slots. + +- + * Menu: + + * Serious Conditions:: +@@ -5851,7 +5840,6 @@ will be considered for possible invocati + + Figure 9-4: Operators relating to handling conditions. + +- + * Menu: + + * Signaling:: +@@ -5894,7 +5882,6 @@ conditions. + + Figure 9-5: Defined names relating to signaling conditions. + +- +  + File: gcl.info, Node: Resignaling a Condition, Next: Restarts, Prev: Signaling, Up: Signaling and Handling Conditions + +@@ -6015,7 +6002,6 @@ notational convenience. + + Figure 9-6: Defined names relating to restarts. + +- +  + File: gcl.info, Node: Restart Tests, Next: Associating a Restart with a Condition, Prev: Interfaces to Restarts, Up: Signaling and Handling Conditions + +@@ -6063,7 +6049,6 @@ form evaluation, and type are handled by + + Figure 9-7: Operators relating to assertions. + +- +  + File: gcl.info, Node: Notes about the Condition System`s Background, Prev: Assertions, Up: Condition System Concepts + +@@ -6903,7 +6888,6 @@ Examples:: + |> Type a form to be evaluated and used instead: |>>5<<| + ⇒ (defun add5 (x) (+ x 5)) + +- + Control is transferred to a handler. + + Side Effects:: +@@ -7423,7 +7407,6 @@ Examples:: + |> Return from BREAK. + ⇒ NIL + +- + Side Effects:: + .............. + +--- gcl27-2.7.1.orig/info/gcl.info-5 ++++ gcl27-2.7.1/info/gcl.info-5 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -162,7 +162,6 @@ Examples:: + ;; also returns information about any system-supplied restarts, such as + ;; the "Return to Lisp Toplevel" restart offered above. + +- + Affected By:: + ............. + +@@ -1294,7 +1293,6 @@ Examples:: + (setq x 1 y 2) ⇒ 2 + (add-symbols-with-default 3 'x 'y 'z) ⇒ 6 + +- + Side Effects:: + .............. + +@@ -1358,7 +1356,6 @@ lists of symbols. + + Figure 10-1: Property list defined names + +- + Figure 10-2 lists some defined names that are applicable to the + creation of and inquiry about symbols. + +@@ -1368,7 +1365,6 @@ creation of and inquiry about symbols. + + Figure 10-2: Symbol creation and inquiry defined names + +- +  + File: gcl.info, Node: Symbols Dictionary, Prev: Symbol Concepts, Up: Symbols + +@@ -2737,7 +2733,6 @@ symbol is supplied, its name will be use + + Figure 11-1: Some Defined Names related to Packages + +- + * Menu: + + * Package Names and Nicknames:: +@@ -2960,7 +2955,6 @@ those standardized packages is given in + + Figure 11-2: Standardized Package Names + +- + * Menu: + + * The COMMON-LISP Package:: +@@ -3756,7 +3750,6 @@ Examples:: + (export 'test-2::test (find-package 'test-2)) ⇒ T + (use-package 'test-2 (find-package 'test-1)) ;should not error + +- + Side Effects:: + .............. + +@@ -5303,7 +5296,6 @@ into categories that emphasize some of t + + Figure 12-1: Operators relating to Arithmetic. + +- + Figure 12-2 shows defined names relating to exponential, logarithmic, + and trigonometric operations. + +@@ -5318,7 +5310,6 @@ and trigonometric operations. + + Figure 12-2: Defined names relating to Exponentials, Logarithms, and Trigonometry. + +- + Figure 12-3 shows operators relating to numeric comparison and + predication. + +@@ -5330,7 +5321,6 @@ predication. + + Figure 12-3: Operators for numeric comparison and predication. + +- + Figure 12-4 shows defined names relating to numeric type manipulation + and coercion. + +@@ -5346,7 +5336,6 @@ and coercion. + + Figure 12-4: Defined names relating to numeric type manipulation and coercion. + +- + * Menu: + + * Associativity and Commutativity in Numeric Operations:: +@@ -5456,7 +5445,6 @@ numbers. + + Figure 12-5: Defined names relating to logical operations on numbers. + +- +  + File: gcl.info, Node: Byte Operations on Integers, Prev: Logical Operations on Integers, Up: Numeric Operations + +@@ -5478,7 +5466,6 @@ numbers. + + Figure 12-6: Defined names relating to byte manipulation. + +- +  + File: gcl.info, Node: Implementation-Dependent Numeric Constants, Next: Rational Computations, Prev: Numeric Operations, Up: Number Concepts + +@@ -5504,7 +5491,6 @@ details about numbers. + + Figure 12-7: Defined names relating to implementation-dependent details about numbers. + +- +  + File: gcl.info, Node: Rational Computations, Next: Floating-point Computations, Prev: Implementation-Dependent Numeric Constants, Up: Number Concepts + +@@ -5606,7 +5592,6 @@ single-float). + + Figure 12-8: Functions Affected by Rule of Float Substitutability + +- +  + File: gcl.info, Node: Floating-point Computations, Next: Complex Computations, Prev: Rational Computations, Up: Number Concepts + +@@ -5803,7 +5788,6 @@ applicable portion of the complex domain + + Figure 12-9: Trigonometric Identities for Complex Domain + +- + The quadrant numbers referred to in the discussions of branch cuts + are as illustrated in Figure 12-10. + +@@ -5824,7 +5808,6 @@ are as illustrated in Figure 12-10. + | + | + +- + Figure 12-9: Quadrant Numbering for Branch Cuts + +  +@@ -5882,7 +5865,6 @@ states. + + Figure 12-10: Random-state defined names + +- +  + File: gcl.info, Node: Numbers Dictionary, Prev: Number Concepts, Up: Numbers (Numbers) + +@@ -6261,7 +6243,6 @@ minus zero. + + Figure 12-11: Recommended Minimum Floating-Point Precision and Exponent Size + +- + There can be fewer than four internal representations for floats. If + there are fewer distinct representations, the following rules apply: + +@@ -6749,7 +6730,6 @@ The uses of these functions are illustra + + Figure 12-12: Uses of /=, =, <, >, <=, and >= + +- + Exceptional Situations:: + ........................ + +@@ -7153,7 +7133,6 @@ specified as x as in Figure 12-13. + + Figure 12-13: Mathematical definition of arc sine, arc cosine, and arc tangent + +- + These formulae are mathematically correct, assuming completely + accurate computation. They are not necessarily the simplest ones for + real-valued computations. +@@ -7264,7 +7243,6 @@ implementations that support minus zero. + + Figure 12-14: Quadrant information for arc tangent + +- + Examples:: + .......... + +@@ -7376,7 +7354,6 @@ for an argument x as given in Figure 12- + + Figure 12-15: Mathematical definitions for hyperbolic functions + +- + The following definition for the inverse hyperbolic cosine determines + the range and branch cuts: + +@@ -8119,7 +8096,7 @@ even if an exact integer result is possi + + The branch cut for the logarithm function of one argument (natural + logarithm) lies along the negative real axis, continuous with quadrant +-II. The domain excludes the origin. ++II. The domain excludes the origin. + + The mathematical definition of a complex logarithm is as follows, + whether or not minus zero is supported by the implementation: +@@ -8780,7 +8757,6 @@ Examples:: + (complexp 1.2d2) ⇒ false + (complexp #c(5/3 7.2)) ⇒ true + +- + See Also:: + .......... + +@@ -9320,7 +9296,6 @@ Examples:: + (integerp 6/5) ⇒ false + (integerp nil) ⇒ false + +- + Notes:: + ....... + +@@ -9442,7 +9417,6 @@ op. + + Figure 12-16: Bit-Wise Logical Operations + +- + Examples:: + .......... + +@@ -9637,7 +9611,6 @@ no arguments are supplied. + + Figure 12-17: Bit-wise Logical Operations on Integers + +- + Negative integers are treated as if they were in two's-complement + notation. + +--- gcl27-2.7.1.orig/info/gcl.info-6 ++++ gcl27-2.7.1/info/gcl.info-6 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -666,7 +666,6 @@ and character predicates. + + Figure 13-1: Character defined names - 1 + +- + Figure 13-2 lists some character construction and conversion defined + names. + +@@ -676,7 +675,6 @@ names. + + Figure 13-2: Character defined names - 2 + +- +  + File: gcl.info, Node: Introduction to Scripts and Repertoires, Next: Character Attributes, Prev: Introduction to Characters, Up: Character Concepts + +@@ -2235,7 +2233,6 @@ and the cdr. + + Figure 14-1: Some defined names relating to conses. + +- + Depending on context, a group of connected conses can be viewed in a + variety of different ways. A variety of operations is provided to + support each of these various views. +@@ -2270,7 +2267,6 @@ some relationship among that data. + + Figure 14-2: Some defined names relating to trees. + +- + * Menu: + + * General Restrictions on Parameters that must be Trees:: +@@ -2320,7 +2316,6 @@ some cons in the chain is the cdr of a l + + Figure 14-3: Some defined names relating to lists. + +- + * Menu: + + * Lists as Association Lists:: +@@ -2342,7 +2337,6 @@ the value associated with that key. + + Figure 14-4: Some defined names related to association lists. + +- +  + File: gcl.info, Node: Lists as Sets, Next: General Restrictions on Parameters that must be Lists, Prev: Lists as Association Lists, Up: Conses as Lists + +@@ -2358,7 +2352,6 @@ unordered and by assuming there is no du + + Figure 14-5: Some defined names related to sets. + +- +  + File: gcl.info, Node: General Restrictions on Parameters that must be Lists, Prev: Lists as Sets, Up: Conses as Lists + +@@ -2886,7 +2879,6 @@ relationships precisely. + + Figure 14-6: CAR and CDR variants + +- + setf can also be used with any of these functions to change an + existing component of x, but setf will not make new components. So, for + example, the car of a cons can be assigned with setf of car, but the car +@@ -3489,7 +3481,6 @@ list-length could be implemented as foll + ;; That fact justifies this implementation.) + (when (and (eq fast slow) (> n 0)) (return nil)))) + +- +  + File: gcl.info, Node: listp, Next: make-list, Prev: list-length, Up: Conses Dictionary + +@@ -4104,7 +4095,6 @@ Examples:: + |> T + ⇒ T + +- + Side Effects:: + .............. + +@@ -6092,7 +6082,6 @@ creation, access, and information operat + + Figure 15-1: General Purpose Array-Related Defined Names + +- + * Menu: + + * Array Upgrading:: +@@ -6157,7 +6146,6 @@ Strings::. + + Figure 15-2: Operators that Manipulate Strings + +- + Vectors whose elements are restricted to type bit are called bit + vectors . Bit vectors are of type bit-vector. Figure 15-3 lists some + defined names for operations on bit arrays. +@@ -6170,7 +6158,6 @@ defined names for operations on bit arra + + Figure 15-3: Operators that Manipulate Bit Arrays + +- +  + File: gcl.info, Node: Arrays Dictionary, Prev: Array Concepts, Up: Arrays + +@@ -8267,7 +8254,6 @@ bit-orc1 + bit-orc2 or bit-array1 with complement of bit-array2 + Figure 15-3: Bit-wise Logical Operations on Bit Arrays + +- + Examples:: + .......... + +@@ -9216,7 +9202,6 @@ constructed will be simple strings. + + Figure 17-1: Standardized Sequence Functions + +- + * Menu: + + * General Restrictions on Parameters that must be Sequences:: +@@ -9266,7 +9251,6 @@ designated with either a :test or :test- + + Figure 17-2: Operators that have Two-Argument Tests to be Satisfied + +- + The object O might not be compared directly to E_i. If a :key + argument is provided, it is a designator for a function of one argument + to be called with each E_i as an argument, and yielding an object Z_i to +@@ -9356,7 +9340,6 @@ basis of a one argument predicate. + + Figure 17-3: Operators that have One-Argument Tests to be Satisfied + +- + The element E_i might not be considered directly. If a :key argument + is provided, it is a designator for a function of one argument to be + called with each E_i as an argument, and yielding an object Z_i to be +--- gcl27-2.7.1.orig/info/gcl.info-7 ++++ gcl27-2.7.1/info/gcl.info-7 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -1025,7 +1025,6 @@ The following rules apply to hash tables + + Figure 18-1: Hash-table defined names + +- +  + File: gcl.info, Node: Modifying Hash Table Keys, Prev: Hash-Table Operations, Up: Hash Table Concepts + +@@ -2083,7 +2082,6 @@ pathnames. + + Figure 19-1: Pathname Operations + +- +  + File: gcl.info, Node: Parsing Namestrings Into Pathnames, Prev: Pathnames as Filenames, Up: Overview of Filenames + +@@ -2266,7 +2264,6 @@ lists the functions relating to pathname + + Figure 19-2: Pathname functions using a :CASE argument + +- +  + File: gcl.info, Node: Local Case in Pathname Components, Next: Common Case in Pathname Components, Prev: Case in Pathname Components, Up: Interpreting Pathname Component Values + +@@ -2512,7 +2509,6 @@ most implementations. + + Figure 19-3: Special Markers In Directory Component + +- + The following notes apply to the previous figure: + + Invalid Combinations +@@ -4403,7 +4399,6 @@ directories. + + Figure 20-1: File and Directory Operations + +- + * Menu: + + * Coercion of Streams to Pathnames:: +@@ -4448,7 +4443,6 @@ differently. + + Figure 20-2: File Functions that Treat Open and Closed Streams Differently + +- + Since treatment of open streams by the file system may vary + considerably between implementations, however, a closed stream might be + the most reliable kind of argument for some of these functions--in +@@ -4461,7 +4455,6 @@ that is intended to be portable should u + + Figure 20-3: File Functions where Closed Streams Might Work Best + +- +  + File: gcl.info, Node: Truenames, Prev: File Operations on Open and Closed Streams, Up: File System Concepts + +@@ -5142,7 +5135,6 @@ with any kind of stream. + + Figure 21-1: Some General-Purpose Stream Operations + +- + Other operations are only meaningful on certain stream types. For + example, read-char is only defined for character streams and read-byte + is only defined for binary streams. +@@ -5182,7 +5174,6 @@ stream (source of data), an output strea + + Figure 21-2: Operators relating to Input Streams. + +- + Figure 21-3 shows operators relating to output streams. + + clear-output prin1 write +@@ -5194,7 +5185,6 @@ stream (source of data), an output strea + + Figure 21-3: Operators relating to Output Streams. + +- + A stream that is both an input stream and an output stream is called + a bidirectional stream . See the functions input-stream-p and + output-stream-p. +@@ -5207,7 +5197,6 @@ operators that relate specificaly to bid + + Figure 21-4: Operators relating to Bidirectional Streams. + +- +  + File: gcl.info, Node: Open and Closed Streams, Next: Interactive Streams, Prev: Input, Up: Introduction to Streams + +@@ -5321,7 +5310,6 @@ subclasses. + + Figure 21-5: Defined Names related to Specialized Streams + +- +  + File: gcl.info, Node: Stream Variables, Next: Stream Arguments to Standardized Functions, Prev: Introduction to Streams, Up: Stream Concepts + +@@ -5349,7 +5337,6 @@ stream. + + Figure 21-6: Standardized Stream Variables + +- + Note that, by convention, standardized stream variables have names + ending in "-input*" if they must be input streams, ending in "-output*" + if they must be output streams, or ending in "-io*" if they must be +@@ -5383,7 +5370,6 @@ either open or closed streams. + + Figure 21-7: Operators that accept either Open or Closed Streams + +- + The operators in Figure 21-8 accept stream arguments that must be + open streams. + +@@ -5408,7 +5394,6 @@ open streams. + + Figure 21-8: Operators that accept Open Streams only + +- +  + File: gcl.info, Node: Restrictions on Composite Streams, Prev: Stream Arguments to Standardized Functions, Up: Stream Concepts + +@@ -8799,7 +8784,6 @@ control variables. + + Figure 22-1: Standardized Printer Control Variables + +- + In addition to the printer control variables, the following + additional defined names relate to or affect the behavior of the Lisp + printer: +@@ -8809,7 +8793,6 @@ printer: + + Figure 22-2: Additional Influences on the Lisp printer. + +- +  + File: gcl.info, Node: Printer Escaping, Prev: Multiple Possible Textual Representations, Up: Overview of The Lisp Printer + +--- gcl27-2.7.1.orig/info/gcl.info-8 ++++ gcl27-2.7.1/info/gcl.info-8 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -501,7 +501,6 @@ pretty printing. + + Figure 22-3: Defined names related to pretty printing. + +- + Figure 22-4 identifies a set of format directives which serve as an + alternate interface to the same pretty printing operations in a more + textually compact form. +@@ -511,7 +510,6 @@ textually compact form. + + Figure 22-4: Format directives related to Pretty Printing + +- +  + File: gcl.info, Node: Compiling Format Strings, Next: Pretty Print Dispatch Tables, Prev: Format Directive Interface, Up: Pretty Printer Concepts + +@@ -934,7 +932,6 @@ call. + + Figure 22-5: Examples of format control strings + +- + format sends the output to destination. If destination is nil, + format creates and returns a string containing the output from + control-string. If destination is non-nil, it must be a string with a +@@ -3503,7 +3500,6 @@ the Lisp printer. + + Figure 22-6: Argument correspondences for the WRITE function. + +- + prin1, princ, print, and pprint implicitly bind certain print + parameters to particular values. The remaining parameter values are + taken from *print-array*, *print-base*, *print-case*, *print-circle*, +@@ -5105,7 +5101,7 @@ to prevent it from being a constituent. + a}. This could be corrected by putting a space before the }, but it is + better to call set-macro-character. + +- Giving } the same definition as the standard definition of the ++ Giving } the same definition as the standard definition of the + character ) has the twin benefit of making it terminate tokens for use + with read-delimited-list and also making it invalid for use in any other + context. Attempting to read a stray } will signal an error. +@@ -5604,7 +5600,6 @@ mentioned here, too.] + + Figure 23-1: Values of standard control variables + +- + Examples:: + .......... + +@@ -5812,7 +5807,7 @@ Dispatching macro characters (including + continue to delimit and construct lists; the #( notation continues to + delimit vectors; and comments, strings, and the single-quote and + backquote notations continue to be interpreted properly. Such +-situations as '), #<, #), and # continue to signal errors. ++situations as '), #<, #), and # continue to signal errors. + + Examples:: + .......... +@@ -6039,7 +6034,6 @@ expressions, and how they would be read_ + + Figure 24-1: Features examples + +- +  + File: gcl.info, Node: System Construction Dictionary, Prev: System Construction Concepts, Up: System Construction + +@@ -6944,7 +6938,6 @@ variables that are maintained by the Lis + + Figure 25-1: Variables maintained by the Read-Eval-Print Loop + +- +  + File: gcl.info, Node: Debugging Utilities, Next: Environment Inquiry, Prev: Top level loop, Up: The External Environment + +@@ -6961,7 +6954,6 @@ Figure 25-2 shows defined names relating + + Figure 25-2: Defined names relating to debugging + +- +  + File: gcl.info, Node: Environment Inquiry, Next: Time, Prev: Debugging Utilities, Up: The External Environment + +@@ -6981,7 +6973,6 @@ executed. + + Figure 25-3: Defined names relating to environment inquiry. + +- +  + File: gcl.info, Node: Time, Prev: Environment Inquiry, Up: The External Environment + +@@ -7009,7 +7000,6 @@ represented as a non-negative real numbe + + Figure 25-4: Defined names involving Time. + +- + * Menu: + + * Decoded Time:: +@@ -7069,7 +7059,6 @@ Time zone + + Figure 25-5: Defined names involving time in Decoded Time. + +- +  + File: gcl.info, Node: Universal Time, Next: Internal Time, Prev: Decoded Time, Up: Time + +@@ -7094,7 +7083,6 @@ Lisp. + + Figure 25-6: Defined names involving time in Universal Time. + +- +  + File: gcl.info, Node: Internal Time, Next: Seconds, Prev: Universal Time, Up: Time + +@@ -7113,7 +7101,6 @@ to an arbitrary time base. + + Figure 25-7: Defined names involving time in Internal Time. + +- +  + File: gcl.info, Node: Seconds, Prev: Internal Time, Up: Time + +@@ -7131,7 +7118,6 @@ fractional seconds. + + Figure 25-8: Defined names involving time in Seconds. + +- +  + File: gcl.info, Node: Environment Dictionary, Prev: The External Environment, Up: Environment + +@@ -8843,3 +8829,13 @@ Affected By:: + + The host computer's file system, and the implementation. + ++ ++File: gcl.info, Node: Glossary (Glossary), Next: Appendix, Prev: Environment, Up: Top ++ ++26 Glossary ++*********** ++ ++* Menu: ++ ++* Glossary:: ++ +--- gcl27-2.7.1.orig/info/gcl.info-9 ++++ gcl27-2.7.1/info/gcl.info-9 +@@ -1,4 +1,4 @@ +-This is gcl.info, produced by makeinfo version 7.1 from gcl.texi. ++This is gcl.info, produced by makeinfo version 7.3 from gcl.texi. + + This is a Texinfo GNU Common Lisp Manual based on the draft ANSI + standard for Common Lisp. +@@ -11,16 +11,6 @@ START-INFO-DIR-ENTRY + END-INFO-DIR-ENTRY + +  +-File: gcl.info, Node: Glossary (Glossary), Next: Appendix, Prev: Environment, Up: Top +- +-26 Glossary +-*********** +- +-* Menu: +- +-* Glossary:: +- +- + File: gcl.info, Node: Glossary, Prev: Glossary (Glossary), Up: Glossary (Glossary) + + 26.1 Glossary +@@ -1423,7 +1413,6 @@ exponent marker + + Figure 26-1: Exponent Markers + +- + export + v.t. (a symbol in a package) to add the symbol to the list of + external symbols of the package. +@@ -1886,7 +1875,6 @@ I/O customization variable + + Figure 26-2: Standardized I/O Customization Variables + +- + identical + adj. the same under eq. + +@@ -2080,7 +2068,6 @@ iteration form + + Figure 26-3: Standardized Iteration Forms + +- + iteration variable + n. a variable V, the binding for which was created by an explicit + use of V in an iteration form. +@@ -3108,7 +3095,6 @@ restart function + + Figure 26-4: Standardized Restart Functions + +- + return + v.t. (of values) 1. (from a block) to transfer control and values + from the block; that is, to cause the block to yield the values +@@ -3736,7 +3722,7 @@ time zone + (inclusive) that represents a time zone as a number of hours offset + from Greenwich Mean Time. Time zone values increase with motion to + the west, so Massachusetts, U.S.A. is in time zone 5, California, +- U.S.A. is time zone 8, and Moscow, Russia is time zone -3. (When ++ U.S.A. is time zone 8, and Moscow, Russia is time zone -3. (When + "daylight savings time" is separately represented as an argument or + return value, the time zone that accompanies it does not depend on + whether daylight savings time is in effect.) +--- gcl27-2.7.1.orig/info/system.texi ++++ gcl27-2.7.1/info/system.texi +@@ -120,7 +120,7 @@ will bear a name based on the name of th + by name by C code. + @end vtable + +-@node Operating System Definitions, , Command Line, Operating System ++@node Operating System Definitions, Environment Variables , Command Line, Operating System + @section Operating System Definitions + + @defun GET-DECODED-TIME () diff --git a/debian/patches/Version_2_7_2pre21 b/debian/patches/Version_2_7_2pre21 new file mode 100644 index 00000000..f36e8e45 --- /dev/null +++ b/debian/patches/Version_2_7_2pre21 @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 14 2026 11:50:06 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre20" ++"Version_2_7_2pre21" +--- gcl27-2.7.1.orig/h/s390-linux.h ++++ gcl27-2.7.1/h/s390-linux.h +@@ -6,9 +6,9 @@ + #define C_GC_OFFSET 4 + #define RELOC_H "elf64_s390_reloc.h" + #define SPECIAL_RELOC_H "elf64_sparc_reloc_special.h" +-#define OUTPUT_MACH #define bfd_mach_s390_64 ++#define OUTPUT_MACH bfd_mach_s390_64 + #else + #define RELOC_H "elf32_s390_reloc.h" +-#define OUTPUT_MACH #define bfd_mach_s390_32 ++#define OUTPUT_MACH bfd_mach_s390_32 + #endif + diff --git a/debian/patches/Version_2_7_2pre22 b/debian/patches/Version_2_7_2pre22 new file mode 100644 index 00000000..abc7cf41 --- /dev/null +++ b/debian/patches/Version_2_7_2pre22 @@ -0,0 +1,150 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 16 2026 13:00:24 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +Bug-Debian: https://bugs.debian.org/1135720 +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -271,7 +271,10 @@ unixport/raw_%: unixport/lib%.a $(FF) $( + ( echo Relinking raw image for mac arm && \ + $(CC) \ + $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \ +- $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS)) ++ $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \ ++ ("$$(printf '%s\n1167\n' $$(ld -v 2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)" != "1167" || \ ++ ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \ ++ codesign -s - --force $@ ))) + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ + unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -4583,7 +4583,10 @@ unixport/raw_%: unixport/lib%.a $(FF) $( + ( echo Relinking raw image for mac arm && \ + $(CC) \ + $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \ +- $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS)) ++ $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \ ++ ("$$(printf '%s\n1167\n' $$(ld -v 2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)" != "1167" || \ ++ ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \ ++ codesign -s - --force $@ ))) + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ + unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp +@@ -88,9 +88,7 @@ + (or + (c1constant-value val nil) + (when (functionp val) +- (multiple-value-bind (s c n) (fle val) +- (declare (ignore c)) +- (c1function (list (or n s))))) ++ (c1function (list (fle val)))) + `(location ,(make-info :type (object-type val)) (VV ,(add-constant form)))))) + ; ((c1var form)))) + ((c1expr-avct (c1var form))))) ;FIXME pcl +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -7342,7 +7342,7 @@ if test ${enable_saved_pre_image_span+y} + then : + enableval=$enable_saved_pre_image_span; SAVED_PRE_IMAGE_SPAN=$enableval + else case e in #( +- e) SAVED_PRE_IMAGE_SPAN=0x100000000 ;; ++ e) SAVED_PRE_IMAGE_SPAN=0xFFF00000 ;; + esac + fi + +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -360,7 +360,7 @@ case $use in + + #Support libboot option + AC_ARG_ENABLE([saved_pre_image_span],[ --enable-saved_pre_image_span=0x.... set address span for saved pre images], +- [SAVED_PRE_IMAGE_SPAN=$enableval],[SAVED_PRE_IMAGE_SPAN=0x100000000]) ++ [SAVED_PRE_IMAGE_SPAN=$enableval],[SAVED_PRE_IMAGE_SPAN=0xFFF00000]) + AC_DEFINE_UNQUOTED(SAVED_PRE_IMAGE_SPAN,$SAVED_PRE_IMAGE_SPAN,[address span for saved pre images]) + + AC_ARG_ENABLE([saved_image_span],[ --enable-saved_image_span=0x.... set address span for saved images], +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre21" ++"Version_2_7_2pre22" +--- gcl27-2.7.1.orig/lsp/gcl_fpe.lsp ++++ gcl27-2.7.1/lsp/gcl_fpe.lsp +@@ -2,7 +2,7 @@ + (in-package :fpe) + + (import 'si::(disassemble-instruction feenableexcept fedisableexcept fld *fixnum *float *double +- fetestexcept feclearexcept ++ fetestexcept feclearexcept address + *fixnum *ushort *uint fun-name + si-class-direct-subclasses si-class-name si-find-class + +fe-list+ +mc-context-offsets+ floating-point-error +@@ -132,11 +132,11 @@ + + #.`(let ((fpe-enabled 0)(fpe-set 0)) + #+no-sigfpe +- (defun flush-floating-point-exceptions nil ++ (defun flush-floating-point-exceptions (name args &optional (fun (symbol-function name))) + (let ((x (fetestexcept fpe-set))) + (unless (zerop x) + (feclearexcept x) +- (floating-point-error x 0 0)))) ++ (floating-point-error x (list* fun "unknown" name args) 0)))) + (defun break-on-floating-point-exceptions + (&key suspend no-flush + ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+) +@@ -168,17 +168,23 @@ + :initial-value nil) + 'arithmetic-error)) + +-(defun floating-point-error (code addr context) ++(defun floating-point-error (code addr context &aux (l (listp addr))) + (break-on-floating-point-exceptions :suspend t :no-flush t) + (restart-case + (unwind-protect +- (let* ((fun (function-by-address addr))(m (read-instruction addr context))) +- ((lambda (&rest r) (apply 'error (if (find-package :conditions) r (list (format nil "~s" r))))) ++ (let* ((fun (if l (pop addr) (function-by-address addr))) ++ (m (if l addr (read-instruction addr context))) ++ (addr (if l (address fun) addr))) ++ ((lambda (&rest r) ++ (apply 'error (if (find-package :conditions) r (list (format nil "~s" r))))) + (code-condition code) +- :operation (list :insn (pop m) :op (pop m) :fun fun :addr addr) :operands m :function-name (when fun (fun-name fun)))) ++ :operation (list :insn (pop m) :op (pop m) :fun fun :addr addr) ++ :operands m ++ :function-name (when fun (fun-name fun)))) + (break-on-floating-point-exceptions :no-flush t)) +- (continue nil :report (lambda (s) (format s "Continue disabling floating point exception trapping")) +- (apply 'break-on-floating-point-exceptions +- :no-flush t +- (mapcan (lambda (x) (list x nil)) +- (break-on-floating-point-exceptions :no-flush t)))))) ++ (continue nil ++ :report (lambda (s) (format s "Continue disabling floating point exception trapping")) ++ (apply 'break-on-floating-point-exceptions ++ :no-flush t ++ (mapcan (lambda (x) (list x nil)) ++ (break-on-floating-point-exceptions :no-flush t)))))) diff --git a/debian/patches/Version_2_7_2pre23 b/debian/patches/Version_2_7_2pre23 new file mode 100644 index 00000000..31b8c589 --- /dev/null +++ b/debian/patches/Version_2_7_2pre23 @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 16 2026 17:37:35 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +Bug-Debian: https://bugs.debian.org/1135720 +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp +@@ -87,10 +87,11 @@ + (let ((val (symbol-value form))) + (or + (c1constant-value val nil) +- (when (functionp val) +- (c1function (list (fle val)))) +- `(location ,(make-info :type (object-type val)) (VV ,(add-constant form)))))) +- ; ((c1var form)))) ++ `(location ++ ,(make-info ++ :type (if (functionp val) #tfunction (object-type val)));FIXME ++ (VV ,(add-constant form)))))) ++; ((c1var form)))) + ((c1expr-avct (c1var form))))) ;FIXME pcl + ((consp form) + (let ((fun (car form))) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre22" ++"Version_2_7_2pre23" diff --git a/debian/patches/Version_2_7_2pre24 b/debian/patches/Version_2_7_2pre24 new file mode 100644 index 00000000..4f703f1c --- /dev/null +++ b/debian/patches/Version_2_7_2pre24 @@ -0,0 +1,443 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 22 2026 15:34:58 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -272,8 +272,11 @@ unixport/raw_%: unixport/lib%.a $(FF) $( + $(CC) \ + $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \ + $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \ +- ("$$(printf '%s\n1167\n' $$(ld -v 2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)" != "1167" || \ +- ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \ ++ ( LV=$$(ld -v 2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1); \ ++ echo "Linker version $$LV" ; \ ++ [ "$$(printf '%s\n1167\n' $$LV | sort -r -V |head -n 1)" != "1167" ] || \ ++ ( echo "Patching" ; \ ++ printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \ + codesign -s - --force $@ ))) + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -4584,8 +4584,11 @@ unixport/raw_%: unixport/lib%.a $(FF) $( + $(CC) \ + $$(otool -l $@ | bin/mac_arm_relink ps=$(SEGMENT_ALIGNMENT_BITS) base=$(TEXT_BASE)) \ + $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) && \ +- ("$$(printf '%s\n1167\n' $$(ld -v 2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1) | sort -V |head -n 1)" != "1167" || \ +- ( printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \ ++ ( LV=$$(ld -v 2>&1 | head -n 1 | awk '{print $$2}' | cut -f2 -d: | cut -d- -f2 | cut -d\. -f1); \ ++ echo "Linker version $$LV" ; \ ++ [ "$$(printf '%s\n1167\n' $$LV | sort -r -V |head -n 1)" != "1167" ] || \ ++ ( echo "Patching" ; \ ++ printf '\x00\x00\x00\x00\x01\x00\x00\x00' | dd of=$@ bs=1 seek=64 conv=notrunc && \ + codesign -s - --force $@ ))) + + unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp +@@ -350,6 +350,7 @@ + cadddr cdaddr cddadr cdddar cddddr logand lognot logior logxor c-type complex-real + complex-imag ratio-numerator ratio-denominator cnum-type si::number-plus si::number-minus + si::number-times si::number-divide ;FIXME more ++ si::expand-deftype + ,@(mapcar (lambda (x) (cdr x)) (remove-if-not (lambda (x) (symbolp (cdr x))) +cmp-type-alist+)))) + (si::putprop l t 'c1no-side-effects)) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpopt.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpopt.lsp +@@ -895,9 +895,9 @@ + (get 'truncate 'inline-always)) + (push '((fixnum) (returns-exactly fixnum fixnum) #.(flags rfa)"({fixnum _t=(#0);@1(#0)-_t@ _t;})") + (get 'truncate 'inline-always)) +-(push '((short-float) (returns-exactly fixnum short-float) #.(flags rfa)"({float _t=(#0);@1(#0)-_t@ _t;})") ++(push '((short-float) (returns-exactly fixnum short-float) #.(flags rfa)"({fixnum _t=(#0);@1(#0)-_t@ _t;})") + (get 'truncate 'inline-always)) +-(push '((long-float) (returns-exactly fixnum long-float) #.(flags rfa)"({double _t=(#0);@1(#0)-_t@ _t;})") ++(push '((long-float) (returns-exactly fixnum long-float) #.(flags rfa)"({fixnum _t=(#0);@1(#0)-_t@ _t;})") + (get 'truncate 'inline-always)) + + ;;COMPLEXP +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -4189,6 +4189,10 @@ if test "$use" = "gnuwin95" ; then + + libboot="no" + fi ++case $use in ++ *86*gnu) libboot="no";; ++esac ++ + + if test "$libboot" = "yes"; then + AMM_LIBBOOT_TRUE= +@@ -7210,7 +7214,8 @@ add_args_to_cflags -fsigned-char -pipe + -fno-PIE -fno-pie -fno-PIC -fno-pic \ + -Wall \ + -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \ +- -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ ++ -Wno-unused-but-set-variable -Wno-tautological-compare \ ++ -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ + -fbracket-depth=512 + + add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy +@@ -8858,10 +8863,10 @@ fi + + + case $use in +- sh4*) ;; #FIXME, these exceptions needed as of gcc 4.7 +- hppa*) ;; #FIXME +- powerpc*) ;; #FIXME +- alpha*) ;; #FIXME ++# sh4*) ;; #FIXME, these exceptions needed as of gcc 4.7 ++# hppa*) ;; #FIXME ++# powerpc*) ;; #FIXME ++# alpha*) ;; #FIXME + ia64*) ;; #FIXME + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin___clear_cache" >&5 +@@ -8880,8 +8885,8 @@ int + main (void) + { + +- void *v,*ve; +- __builtin___clear_cache(v,ve); ++ char v[1<<12]; ++ __builtin___clear_cache(v,v+sizeof(v)); + + ; + return 0; +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -82,6 +82,10 @@ if test "$use" = "gnuwin95" ; then + AC_SUBST(LF) + libboot="no" + fi ++case $use in ++ *86*gnu) libboot="no";; ++esac ++ + + AM_CONDITIONAL([AMM_LIBBOOT],[test "$libboot" = "yes"]) + if test "$libboot" = "yes" ; then +@@ -276,7 +280,8 @@ add_args_to_cflags -fsigned-char -pipe + -fno-PIE -fno-pie -fno-PIC -fno-pic \ + -Wall \ + -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \ +- -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ ++ -Wno-unused-but-set-variable -Wno-tautological-compare \ ++ -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ + -fbracket-depth=512 + + add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy +@@ -830,19 +835,19 @@ AC_RUN_IFELSE( + + + case $use in +- sh4*) ;; #FIXME, these exceptions needed as of gcc 4.7 +- hppa*) ;; #FIXME +- powerpc*) ;; #FIXME +- alpha*) ;; #FIXME ++# sh4*) ;; #FIXME, these exceptions needed as of gcc 4.7 ++# hppa*) ;; #FIXME ++# powerpc*) ;; #FIXME ++# alpha*) ;; #FIXME + ia64*) ;; #FIXME + *) +- AC_MSG_CHECKING(__builtin___clear_cache) ++ AC_MSG_CHECKING([__builtin___clear_cache]) + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[]], + [[ +- void *v,*ve; +- __builtin___clear_cache(v,ve); ++ char v[1<<12]; ++ __builtin___clear_cache(v,v+sizeof(v)); + ]])], + [AC_DEFINE(HAVE_BUILTIN_CLEAR_CACHE,1,[have __builtin__clear_cache instruction]) + AC_MSG_RESULT(yes)], +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre23" ++"Version_2_7_2pre24" +--- gcl27-2.7.1.orig/h/hppa-linux.h ++++ gcl27-2.7.1/h/hppa-linux.h +@@ -3,17 +3,17 @@ + #define SGC + #define STATIC_FUNCTION_POINTERS + +-#ifdef IN_SFASL +-#include +-#define CLEAR_CACHE_LINE_SIZE 32 +-#define CLEAR_CACHE {\ +- void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size; \ +- v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\ +- for (v=v1;v */ ++/* #define CLEAR_CACHE_LINE_SIZE 32 */ ++/* #define CLEAR_CACHE {\ */ ++/* void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size; \ */ ++/* v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */ ++/* for (v=v1;v +-int cacheflush(void *,int,int,int); +-#define CLEAR_CACHE_LINE_SIZE 32 +-#define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ +- v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ +- cacheflush(v,FLUSH_SCOPE_PAGE,FLUSH_CACHE_BOTH,ve-v);\ +- } while(0) ++/* #include */ ++/* int cacheflush(void *,int,int,int); */ ++/* #define CLEAR_CACHE_LINE_SIZE 32 */ ++/* #define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ */ ++/* v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */ ++/* cacheflush(v,FLUSH_SCOPE_PAGE,FLUSH_CACHE_BOTH,ve-v);\ */ ++/* } while(0) */ + + #define C_GC_OFFSET 2 + +--- gcl27-2.7.1.orig/h/mach64_aarch64_reloc.h ++++ gcl27-2.7.1/h/mach64_aarch64_reloc.h +@@ -43,10 +43,10 @@ + addend=0; + a&=0xfff; + a>>=(((*q)>>29)&0x1)* /*not add/sub*/ +- ((((*q)>>26)&0x1) ? /*simd*/ +- ((((*q)>>22)&0x3) ? +- (((*q)>>22)&0x3)+1 : (((*q)>>30)&0x1)) : +- (((*q)>>30)&0x3)); /*gp*/ ++ (((((*q)>>26)&0x1)&& ++ (((*q)>>22)&0x1)&& ++ (!(((*q)>>30)&0x3))) ? /*simd hardcode*/ ++ 4 : (((*q)>>30)&0x3)); /*gp*/ + store_val(q,MASK(12) << 10, a << 10); + break; + case ARM64_RELOC_UNSIGNED: +--- gcl27-2.7.1.orig/h/powerpc-linux.h ++++ gcl27-2.7.1/h/powerpc-linux.h +@@ -2,12 +2,12 @@ + + #define SGC + +-#define CLEAR_CACHE_LINE_SIZE 32 +-#define CLEAR_CACHE do {void *v=memory->cfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ +- v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ +- for (;vcfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ */ ++/* v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */ ++/* for (;v +-#define CLEAR_CACHE {\ +- void *p=memory->cfd.cfd_start,*pe=p+memory->cfd.cfd_size; \ +- p=(void *)((unsigned long)p & ~(PAGESIZE-1)); \ +- for (;p */ ++/* #define CLEAR_CACHE {\ */ ++/* void *p=memory->cfd.cfd_start,*pe=p+memory->cfd.cfd_size; \ */ ++/* p=(void *)((unsigned long)p & ~(PAGESIZE-1)); \ */ ++/* for (;p dstp 0)) + (if tzp tz (+ (truncate (- off) 3600) dstp)))))) + +-(defun encode-universal-time (s n h d m y &optional (tz (this-tz) tzp)) ++(defun encode-universal-time (s n h d m y &optional (tz (this-tz) tzp) ++ &aux (tzo (* (- tz (this-tz)) 3600))) + (declare (optimize (safety 2))) + (check-type s (integer 0 59)) + (check-type n (integer 0 59)) + (check-type h (integer 0 23)) + (check-type d (integer 1 31)) + (check-type m (integer 1 12)) +- (check-type y integer) ++ (check-type y (integer 1899)) + (check-type tz rational) +- (+ (mktime s n h d (1- m) (- y 1900) (if tzp 0 -1)) +secs-to-1970+ (* (- tz (this-tz)) 3600))) ++ (cond ((eql 1899 y) ++ (assert (and (eql h 23) (eql d 31) (eql m 12))) ++ (+ s (* n 60) tzo)) ++ ((+ (mktime s n h d (1- m) (- y 1900) (if tzp 0 -1)) +secs-to-1970+ tzo)))) + + (defun get-decoded-time () + (decode-universal-time (get-universal-time))) +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -1308,7 +1308,7 @@ gcl_init_alloc(void *cs_start) { + ufixnum k; + for (p=pagetochar(page(v)),k=0;ktm_nppage;k++,p+=tm->tm_size) { + object o=p; +- if (!is_free(o) && type_of(o)==t_cfdata && (void *)o->cfd.cfd_start>=data_start) ++ if (!is_free(o) && type_of(o)==t_cfdata && !o->d.tt && (void *)o->cfd.cfd_start>=data_start) + gcl_mprotect((void *)o->cfd.cfd_start,o->cfd.cfd_nexp<fun.fun_minarg || nfargs>fun->fun.fun_maxarg))/*u.f.va -> varg, xxx*/ + fas=0; +- else if (u.f.va && VFUN_NARGS<0 && fun->fun.fun_minarg==fun->fun.fun_maxarg)/*runtime apply #arg checking omitted in reg fns*/ ++ else if (u.f.va && /* VFUN_NARGS<0 && */fun->fun.fun_minarg==fun->fun.fun_maxarg)/*runtime apply #arg checking omitted in reg fns*/ + fas=0; + /* else if (u.f.va && VFUN_NARGS<0 && */ + /* (nargs-1fun.fun_minarg || nargs-1>fun->fun.fun_maxarg))/\*u.f.va -> varg, xxx*\/ */ +--- gcl27-2.7.1.orig/o/sfaslcoff.c ++++ gcl27-2.7.1/o/sfaslcoff.c +@@ -488,8 +488,12 @@ fasload(object faslfile) { + + massert(!un_mmap(st,est)); + +-#ifdef CLEAR_CACHE ++#if defined(CLEAR_CACHE) + CLEAR_CACHE; ++#elif defined(HAVE_BUILTIN_CLEAR_CACHE) ++ __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size); ++#else ++ #error "No clear cache" + #endif + + if(symbol_value(sLAload_verboseA)!=Cnil) { +--- gcl27-2.7.1.orig/o/sfaslelf.c ++++ gcl27-2.7.1/o/sfaslelf.c +@@ -627,10 +627,12 @@ fasload(object faslfile) { + + massert(!clear_protect_memory(memory)); + +-#if defined(HAVE_BUILTIN_CLEAR_CACHE) +- __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size); +-#elif defined(CLEAR_CACHE) ++#if defined(CLEAR_CACHE) + CLEAR_CACHE; ++#elif defined(HAVE_BUILTIN_CLEAR_CACHE) ++ __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size); ++#else ++ #error "No clear cache" + #endif + + if(symbol_value(sLAload_verboseA)!=Cnil) { +--- gcl27-2.7.1.orig/o/sfaslmacho.c ++++ gcl27-2.7.1/o/sfaslmacho.c +@@ -31,6 +31,10 @@ + #define LOAD_SEC(sec) ({ul _fl=sec->flags&SECTION_TYPE;\ + (_fl<=S_SYMBOL_STUBS || _fl==S_16BYTE_LITERALS) && _fl!=S_ZEROFILL && !(sec->flags&S_ATTR_DEBUG);}) + ++#define GCL_EXTERNAL(sym) ((sym)->n_type & N_EXT || \ ++ (((sym)->n_type & N_TYPE) == N_SECT && \ ++ (sym)->n_sect == 1 && \ ++ !memcmp(strtab+(sym)->n_un.n_strx,"___",3))) + + #define MASK(n) (~(~0ULL << (n))) + +@@ -488,7 +492,7 @@ load_self_symbols() { + + for (a=c_table.ptable,sym=sym1;symn_type & N_STAB) || !(sym->n_type & N_EXT)) ++ if ((sym->n_type & N_STAB) || !GCL_EXTERNAL(sym)) + continue; + + a->address=sym->n_value; +@@ -504,7 +508,7 @@ load_self_symbols() { + + for (c_table.local_ptable=a,sym=sym1;symn_type & N_STAB) || sym->n_type & N_EXT) ++ if ((sym->n_type & N_STAB) || GCL_EXTERNAL(sym)) + continue; + + a->address=sym->n_value; +@@ -645,10 +649,12 @@ fasload(object faslfile) { + + massert(!clear_protect_memory(memory)); + +-#if defined(HAVE_BUILTIN_CLEAR_CACHE) +- __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size); +-#elif defined(CLEAR_CACHE) ++#if defined(CLEAR_CACHE) + CLEAR_CACHE; ++#elif defined(HAVE_BUILTIN_CLEAR_CACHE) ++ __builtin___clear_cache((void *)memory->cfd.cfd_start,(void *)memory->cfd.cfd_start+memory->cfd.cfd_size); ++#else ++ #error "No clear cache" + #endif + + massert(!un_mmap(v1,ve)); diff --git a/debian/patches/Version_2_7_2pre25 b/debian/patches/Version_2_7_2pre25 new file mode 100644 index 00000000..ebf1d755 --- /dev/null +++ b/debian/patches/Version_2_7_2pre25 @@ -0,0 +1,7166 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 27 2026 18:02:01 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -465,7 +465,9 @@ CMPINCLUDE_FILES=h/cmpincl1.h h/gclincl. + CLEANFILES+=h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h + + h/mstdint.h: +- echo "#include " | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@ ++ echo "#include " | \ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ ++ grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@ + + h/mcompdefs.h: h/compdefs.h h/new_decl.h + $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\ +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -4763,7 +4763,9 @@ ansi_gcl/%.o: clcs/%.lisp | unixport/ans + cat $*.data >>$@ + + h/mstdint.h: +- echo "#include " | $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | $(AWK) '/fsid/ {next} {print}' >$@ ++ echo "#include " | \ ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ ++ grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@ + + h/mcompdefs.h: h/compdefs.h h/new_decl.h + $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\ +--- gcl27-2.7.1.orig/aclocal.m4 ++++ gcl27-2.7.1/aclocal.m4 +@@ -14,8 +14,8 @@ + m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) + m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, +-[m4_warning([this file was generated for autoconf 2.72. ++m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.73],, ++[m4_warning([this file was generated for autoconf 2.73. + You have another version of autoconf. It may work, but is not guaranteed to. + If you have problems, you may need to regenerate the build system entirely. + To do so, use the procedure documented by the package, typically 'autoreconf'.])]) +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -1,9 +1,9 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.72 for gcl 2.7.1. ++# Generated by GNU Autoconf 2.73 for gcl 2.7.1. + # + # +-# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, ++# Copyright (C) 1992-1996, 1998-2017, 2020-2026 Free Software Foundation, + # Inc. + # + # +@@ -20,7 +20,7 @@ then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which +- # is contrary to our usage. Disable this feature. ++ # contradicts POSIX and common usage. Disable this. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST + else case e in #( +@@ -107,7 +107,7 @@ if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then +- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 ++ printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 + fi + +@@ -129,10 +129,13 @@ case $- in # (((( + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac +-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++case $# in # (( ++ 0) exec $CONFIG_SHELL $as_opts "$as_myself" ;; ++ *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;; ++esac + # Admittedly, this is quite paranoid, since all the known shells bail + # out after a failed 'exec'. +-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 ++printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2 + exit 255 + fi + # We don't want this to propagate to other subprocesses. +@@ -143,7 +146,7 @@ then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which +- # is contrary to our usage. Disable this feature. ++ # contradicts POSIX and common usage. Disable this. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST + else case e in #( +@@ -253,22 +256,25 @@ case $- in # (((( + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac +-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++case $# in # (( ++ 0) exec $CONFIG_SHELL $as_opts "$as_myself" ;; ++ *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;; ++esac + # Admittedly, this is quite paranoid, since all the known shells bail + # out after a failed 'exec'. +-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 ++printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2 + exit 255 + fi + + if test x$as_have_required = xno + then : +- printf "%s\n" "$0: This script requires a shell more modern than all" +- printf "%s\n" "$0: the shells that I found on your system." ++ printf '%s\n' "$0: This script requires a shell more modern than all" ++ printf '%s\n' "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then +- printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" +- printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." ++ printf '%s\n' "$0: In particular, zsh $ZSH_VERSION has bugs and should" ++ printf '%s\n' "$0: be upgraded to zsh 4.3.4 or later." + else +- printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, ++ printf '%s\n' "$0: Please tell bug-autoconf@gnu.org about your system, + $0: including any error possibly output before this + $0: message. Then install a modern shell, or manually run + $0: the script under such a shell if you do have one." +@@ -328,7 +334,7 @@ as_fn_mkdir_p () + as_dirs= + while :; do + case $as_dir in #( +- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( ++ *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" +@@ -337,7 +343,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X"$as_dir" | ++printf '%s\n' X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q +@@ -420,9 +426,9 @@ as_fn_error () + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi +- printf "%s\n" "$as_me: error: $2" >&2 ++ printf '%s\n' "$as_me: error: $2" >&2 + as_fn_exit $as_status + } # as_fn_error + +@@ -449,7 +455,7 @@ as_me=`$as_basename -- "$0" || + $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X/"$0" | ++printf '%s\n' X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q +@@ -495,7 +501,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || +- { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } ++ { printf '%s\n' "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall +@@ -509,29 +515,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits + exit + } + +- +-# Determine whether it's possible to make 'echo' print without a newline. +-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +-# for compatibility with existing Makefiles. +-ECHO_C= ECHO_N= ECHO_T= +-case `echo -n x` in #((((( +--n*) +- case `echo 'xy\c'` in +- *c*) ECHO_T=' ';; # ECHO_T is single tab character. +- xy) ECHO_C='\c';; +- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null +- ECHO_T=' ';; +- esac;; +-*) +- ECHO_N='-n';; +-esac +- +-# For backward compatibility with old third-party macros, we provide +-# the shell variables $as_echo and $as_echo_n. New code should use +-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +-as_echo='printf %s\n' +-as_echo_n='printf %s' +- + rm -f conf$$ conf$$.exe conf$$.file + if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +@@ -590,6 +573,7 @@ ac_hostname=`(hostname || uname -n) 2>/d + # Initializations. + # + ac_default_prefix=/usr/local ++ac_clean_CONFIG_STATUS= + ac_clean_files= + ac_config_libobj_dir=. + LIBOBJS= +@@ -768,13 +752,13 @@ am__isrc + INSTALL_DATA + INSTALL_SCRIPT + INSTALL_PROGRAM ++ECHO_T ++ECHO_N ++ECHO_C + target_alias + host_alias + build_alias + LIBS +-ECHO_T +-ECHO_N +-ECHO_C + DEFS + mandir + localedir +@@ -967,7 +951,7 @@ do + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: '$ac_useropt'" + ac_useropt_orig=$ac_useropt +- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` ++ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" + "enable_$ac_useropt" +@@ -993,7 +977,7 @@ do + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: '$ac_useropt'" + ac_useropt_orig=$ac_useropt +- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` ++ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" + "enable_$ac_useropt" +@@ -1206,7 +1190,7 @@ do + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: '$ac_useropt'" + ac_useropt_orig=$ac_useropt +- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` ++ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" + "with_$ac_useropt" +@@ -1222,7 +1206,7 @@ do + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: '$ac_useropt'" + ac_useropt_orig=$ac_useropt +- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` ++ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" + "with_$ac_useropt" +@@ -1266,9 +1250,9 @@ Try '$0 --help' for more information" + + *) + # FIXME: should be removed in autoconf 3.0. +- printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 ++ printf '%s\n' "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && +- printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 ++ printf '%s\n' "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + +@@ -1276,7 +1260,7 @@ Try '$0 --help' for more information" + done + + if test -n "$ac_prev"; then +- ac_option=--`echo $ac_prev | sed 's/_/-/g'` ++ ac_option=--`printf '%s\n' $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" + fi + +@@ -1284,7 +1268,7 @@ if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; +- *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; ++ *) printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac + fi + +@@ -1348,7 +1332,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//* + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X"$as_myself" | ++printf '%s\n' X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q +@@ -1563,9 +1547,9 @@ if test "$ac_init_help" = "recursive"; t + case "$ac_dir" in + .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) +- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` ++ ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. +- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` ++ ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; +@@ -1602,7 +1586,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_ + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else +- printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 ++ printf '%s\n' "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +@@ -1612,9 +1596,9 @@ test -n "$ac_init_help" && exit $ac_stat + if $ac_init_version; then + cat <<\_ACEOF + gcl configure 2.7.1 +-generated by GNU Autoconf 2.72 ++generated by GNU Autoconf 2.73 + +-Copyright (C) 2023 Free Software Foundation, Inc. ++Copyright (C) 2026 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -1638,7 +1622,7 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then +@@ -1646,7 +1630,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err +@@ -1654,7 +1638,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 + then : + ac_retval=0 + else case e in #( +- e) printf "%s\n" "$as_me: failed program was:" >&5 ++ e) printf '%s\n' "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 ;; +@@ -1672,7 +1656,7 @@ fi + ac_fn_c_check_header_compile () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + printf %s "checking for $2... " >&6; } + if eval test \${$3+y} + then : +@@ -1694,8 +1678,8 @@ rm -f core conftest.err conftest.$ac_obj + esac + fi + eval ac_res=\$$3 +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-printf "%s\n" "$ac_res" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++printf '%s\n' "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_header_compile +@@ -1712,7 +1696,7 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then +@@ -1720,7 +1704,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err +@@ -1728,7 +1712,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 + then : + ac_retval=0 + else case e in #( +- e) printf "%s\n" "$as_me: failed program was:" >&5 ++ e) printf '%s\n' "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 ;; +@@ -1752,26 +1736,26 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then : + ac_retval=0 + else case e in #( +- e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5 +- printf "%s\n" "$as_me: failed program was:" >&5 ++ e) printf '%s\n' "$as_me: program exited with status $ac_status" >&5 ++ printf '%s\n' "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status ;; +@@ -1790,7 +1774,7 @@ fi + ac_fn_c_check_member () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 + printf %s "checking for $2.$3... " >&6; } + if eval test \${$4+y} + then : +@@ -1840,8 +1824,8 @@ rm -f core conftest.err conftest.$ac_obj + esac + fi + eval ac_res=\$$4 +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-printf "%s\n" "$ac_res" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++printf '%s\n' "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_member +@@ -1859,7 +1843,7 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then +@@ -1867,7 +1851,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err +@@ -1878,7 +1862,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 + then : + ac_retval=0 + else case e in #( +- e) printf "%s\n" "$as_me: failed program was:" >&5 ++ e) printf '%s\n' "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 ;; +@@ -1900,7 +1884,7 @@ fi + ac_fn_c_check_func () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + printf %s "checking for $2... " >&6; } + if eval test \${$3+y} + then : +@@ -1952,8 +1936,8 @@ rm -f core conftest.err conftest.$ac_obj + esac + fi + eval ac_res=\$$3 +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-printf "%s\n" "$ac_res" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++printf '%s\n' "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_func +@@ -2161,7 +2145,7 @@ ac_fn_check_decl () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 + printf %s "checking whether $as_decl_name is declared... " >&6; } + if eval test \${$3+y} + then : +@@ -2201,8 +2185,8 @@ rm -f core conftest.err conftest.$ac_obj + esac + fi + eval ac_res=\$$3 +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-printf "%s\n" "$ac_res" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++printf '%s\n' "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_check_decl +@@ -2211,7 +2195,7 @@ for ac_arg + do + case $ac_arg in + *\'*) +- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" + done +@@ -2223,7 +2207,7 @@ case $ac_configure_args_raw in + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" +- ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; ++ ac_configure_args_raw=` printf '%s\n' "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; + esac + + cat >config.log <<_ACEOF +@@ -2231,7 +2215,7 @@ This file contains any messages produced + running configure, to aid debugging if configure makes a mistake. + + It was created by gcl $as_me 2.7.1, which was +-generated by GNU Autoconf 2.72. Invocation command line was ++generated by GNU Autoconf 2.73. Invocation command line was + + $ $0$ac_configure_args_raw + +@@ -2271,7 +2255,7 @@ do + */) ;; + *) as_dir=$as_dir/ ;; + esac +- printf "%s\n" "PATH: $as_dir" ++ printf '%s\n' "PATH: $as_dir" + done + IFS=$as_save_IFS + +@@ -2306,7 +2290,7 @@ do + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) +- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; +@@ -2335,31 +2319,22 @@ done + { ac_configure_args0=; unset ac_configure_args0;} + { ac_configure_args1=; unset ac_configure_args1;} + +-# When interrupted or exit'd, cleanup temporary files, and complete +-# config.log. We remove comments because anyway the quotes in there +-# would cause problems or look ugly. +-# WARNING: Use '\'' to represent an apostrophe within the trap. +-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +-trap 'exit_status=$? +- # Sanitize IFS. +- IFS=" "" $as_nl" +- # Save into config.log some information that might help in debugging. +- { +- echo +- +- printf "%s\n" "## ---------------- ## +-## Cache variables. ## +-## ---------------- ##" +- echo +- # The following way of writing the cache mishandles newlines in values, ++# Dump the cache to stdout. It can be in a pipe (this is a requirement). ++ac_cache_dump () ++{ ++ # The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, we kill variables containing newlines. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. + ( +- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do ++ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( +- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ++ *_cv_*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 ++printf '%s\n' "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( +@@ -2368,67 +2343,95 @@ printf "%s\n" "$as_me: WARNING: cache va + esac ;; + esac + done ++ + (set) 2>&1 | +- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( ++ case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) ++ # 'set' does not quote correctly, so add quotes: double-quote ++ # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ +- "s/'\''/'\''\\\\'\'''\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) ++ # 'set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort + ) +- echo ++} ++ ++# Print debugging info to stdout. ++ac_dump_debugging_info () ++{ ++ echo ++ ++ printf '%s\n' "## ---------------- ## ++## Cache variables. ## ++## ---------------- ##" ++ echo ++ ac_cache_dump ++ echo + +- printf "%s\n" "## ----------------- ## ++ printf '%s\n' "## ----------------- ## + ## Output variables. ## + ## ----------------- ##" ++ echo ++ for ac_var in $ac_subst_vars ++ do ++ eval ac_val=\$$ac_var ++ case $ac_val in ++ *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;; ++ esac ++ printf '%s\n' "$ac_var='$ac_val'" ++ done | sort ++ echo ++ ++ if test -n "$ac_subst_files"; then ++ printf '%s\n' "## ------------------- ## ++## File substitutions. ## ++## ------------------- ##" + echo +- for ac_var in $ac_subst_vars ++ for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in +- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; ++ *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;; + esac +- printf "%s\n" "$ac_var='\''$ac_val'\''" ++ printf '%s\n' "$ac_var='$ac_val'" + done | sort + echo ++ fi + +- if test -n "$ac_subst_files"; then +- printf "%s\n" "## ------------------- ## +-## File substitutions. ## +-## ------------------- ##" +- echo +- for ac_var in $ac_subst_files +- do +- eval ac_val=\$$ac_var +- case $ac_val in +- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; +- esac +- printf "%s\n" "$ac_var='\''$ac_val'\''" +- done | sort +- echo +- fi +- +- if test -s confdefs.h; then +- printf "%s\n" "## ----------- ## ++ if test -s confdefs.h; then ++ printf '%s\n' "## ----------- ## + ## confdefs.h. ## + ## ----------- ##" +- echo +- cat confdefs.h +- echo +- fi +- test "$ac_signal" != 0 && +- printf "%s\n" "$as_me: caught signal $ac_signal" +- printf "%s\n" "$as_me: exit $exit_status" +- } >&5 +- rm -f core *.core core.conftest.* && ++ echo ++ cat confdefs.h ++ echo ++ fi ++ test "$ac_signal" != 0 && ++ printf '%s\n' "$as_me: caught signal $ac_signal" ++ printf '%s\n' "$as_me: exit $exit_status" ++} ++ ++# When interrupted or exit'd, cleanup temporary files, and complete ++# config.log. ++ac_exit_trap () ++{ ++ exit_status= ++ # Sanitize IFS. ++ IFS=" "" $as_nl" ++ # Save into config.log some information that might help in debugging. ++ ac_dump_debugging_info >&5 ++ eval "rm -f $ac_clean_CONFIG_STATUS core *.core core.conftest.*" && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +-' 0 ++} ++ ++trap 'ac_exit_trap $?' 0 + for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal + done +@@ -2437,21 +2440,21 @@ ac_signal=0 + # confdefs.h avoids OS command line length limits that DEFS can exceed. + rm -f -r conftest* confdefs.h + +-printf "%s\n" "/* confdefs.h */" > confdefs.h ++printf '%s\n' "/* confdefs.h */" > confdefs.h + + # Predefined preprocessor variables. + +-printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h ++printf '%s\n' "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +-printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h ++printf '%s\n' "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +-printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h ++printf '%s\n' "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +-printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h ++printf '%s\n' "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +-printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h ++printf '%s\n' "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +-printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h ++printf '%s\n' "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + + # Let the site file select an alternate cache file if it wants to. +@@ -2473,12 +2476,12 @@ do + ac_site_file=./$ac_site_file ;; + esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +-printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 ++printf '%s\n' "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ +- || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ || { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "failed to load site script $ac_site_file + See 'config.log' for more details" "$LINENO" 5; } + fi +@@ -2488,28 +2491,121 @@ if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +-printf "%s\n" "$as_me: loading cache $cache_file" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 ++printf '%s\n' "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +-printf "%s\n" "$as_me: creating cache $cache_file" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 ++printf '%s\n' "$as_me: creating cache $cache_file" >&6;} + >$cache_file + fi + + as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" ++# Test code for whether the C compiler supports C23 (global declarations) ++ac_c_conftest_c23_globals=' ++/* Does the compiler advertise conformance to C17 or earlier? ++ Although GCC 14 does not do that, even with -std=gnu23, ++ it is close enough, and defines __STDC_VERSION == 202000L. */ ++#if !defined __STDC_VERSION__ || __STDC_VERSION__ <= 201710L ++# error "Compiler advertises conformance to C17 or earlier" ++#endif ++ ++// Check alignas. ++char alignas (double) c23_aligned_as_double; ++char alignas (0) c23_no_special_alignment; ++extern char c23_aligned_as_int; ++char alignas (0) alignas (int) c23_aligned_as_int; ++ ++// Check alignof. ++enum ++{ ++ c23_int_alignment = alignof (int), ++ c23_int_array_alignment = alignof (int[100]), ++ c23_char_alignment = alignof (char) ++}; ++static_assert (0 < -alignof (int), "alignof is signed"); ++ ++int function_with_unnamed_parameter (int) { return 0; } ++ ++void c23_noreturn (); ++ ++/* Test parsing of string and char UTF-8 literals (including hex escapes). ++ The parens pacify GCC 15. */ ++bool use_u8 = (!sizeof u8"\xFF") == (!u8'\''x'\''); ++ ++bool check_that_bool_works = true | false | !nullptr; ++#if !true ++# error "true does not work in #if" ++#endif ++#if false ++#elifdef __STDC_VERSION__ ++#else ++# error "#elifdef does not work" ++#endif ++ ++#ifndef __has_c_attribute ++# error "__has_c_attribute not defined" ++#endif ++ ++#ifndef __has_include ++# error "__has_include not defined" ++#endif ++ ++#define LPAREN() ( ++#define FORTY_TWO(x) 42 ++#define VA_OPT_TEST(r, x, ...) __VA_OPT__ (FORTY_TWO r x)) ++static_assert (VA_OPT_TEST (LPAREN (), 0, <:-) == 42); ++ ++static_assert (0b101010 == 42); ++static_assert (0B101010 == 42); ++static_assert (0xDEAD'\''BEEF == 3'\''735'\''928'\''559); ++static_assert (0.500'\''000'\''000 == 0.5); ++ ++enum unsignedish : unsigned int { uione = 1 }; ++static_assert (0 < -uione); ++ ++#include ++constexpr nullptr_t null_pointer = nullptr; ++ ++static typeof (1 + 1L) two () { return 2; } ++static long int three () { return 3; } ++' ++ ++# Test code for whether the C compiler supports C23 (body of main). ++ac_c_conftest_c23_main=' ++ { ++ label_before_declaration: ++ int arr[10] = {}; ++ if (arr[0]) ++ goto label_before_declaration; ++ if (!arr[0]) ++ goto label_at_end_of_block; ++ label_at_end_of_block: ++ } ++ ok |= !null_pointer; ++ ok |= two != three; ++' ++ ++# Test code for whether the C compiler supports C23 (complete). ++ac_c_conftest_c23_program="${ac_c_conftest_c23_globals} ++ ++int ++main (int, char **) ++{ ++ int ok = 0; ++ ${ac_c_conftest_c23_main} ++ return ok; ++} ++" ++ + # Test code for whether the C compiler supports C89 (global declarations) + ac_c_conftest_c89_globals=' +-/* Does the compiler advertise C89 conformance? +- Do not test the value of __STDC__, because some compilers set it to 0 +- while being otherwise adequately conformant. */ +-#if !defined __STDC__ +-# error "Compiler does not advertise C89 conformance" +-#endif ++/* Do not test the value of __STDC__, because some compilers define it to 0 ++ or do not define it, while otherwise adequately conforming. */ + + #include + #include +@@ -2589,7 +2685,8 @@ extern void free (void *); + + // Check varargs macros. These examples are taken from C99 6.10.3.5. + // dprintf is used instead of fprintf to avoid needing to declare +-// FILE and stderr. ++// FILE and stderr, and "aND" is used instead of "and" to work around ++// GCC bug 40564 which is irrelevant here. + #define debug(...) dprintf (2, __VA_ARGS__) + #define showlist(...) puts (#__VA_ARGS__) + #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +@@ -2600,7 +2697,7 @@ test_varargs_macros (void) + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); +- showlist (The first, second, and third items.); ++ showlist (The first, second, aND third items.); + report (x>y, "x is %d but y is %d", x, y); + } + +@@ -2688,15 +2785,15 @@ ac_c_conftest_c99_main=' + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; +- char *restrict newvar = "Another string"; ++ const char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. +- struct incomplete_array *ia = +- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ++ static struct incomplete_array *volatile incomplete_array_pointer; ++ struct incomplete_array *ia = incomplete_array_pointer; + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; +@@ -2712,13 +2809,12 @@ ac_c_conftest_c99_main=' + + ni.number = 58; + +- int dynamic_array[ni.number]; +- dynamic_array[0] = argv[0][0]; +- dynamic_array[ni.number - 1] = 543; ++ // Do not test for VLAs, as some otherwise-conforming compilers lack them. ++ // C code should instead use __STDC_NO_VLA__; see Autoconf manual. + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' +- || dynamic_array[ni.number - 1] != 543); ++ || ni.number != 58); + ' + + # Test code for whether the C compiler supports C11 (global declarations) +@@ -2851,7 +2947,7 @@ ac_aux_dir_candidates="${srcdir}${PATH_S + # $ac_aux_dir_candidates and give up. + ac_missing_aux_files="" + ac_first_candidate=: +-printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 ++printf '%s\n' "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + as_found=false + for as_dir in $ac_aux_dir_candidates +@@ -2864,7 +2960,7 @@ do + esac + as_found=: + +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files +@@ -2875,13 +2971,13 @@ do + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no +@@ -2893,7 +2989,7 @@ do + fi + else + if test -f "${as_dir}${ac_aux}"; then +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then +@@ -2946,38 +3042,44 @@ for ac_var in $ac_precious_vars; do + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 +-printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 ++printf '%s\n' "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 +-printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 ++printf '%s\n' "$as_me: error: '$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. +- ac_old_val_w=`echo x $ac_old_val` +- ac_new_val_w=`echo x $ac_new_val` ++ ac_old_val_w= ++ for ac_val in x $ac_old_val; do ++ ac_old_val_w="$ac_old_val_w $ac_val" ++ done ++ ac_new_val_w= ++ for ac_val in x $ac_new_val; do ++ ac_new_val_w="$ac_new_val_w $ac_val" ++ done + if test "$ac_old_val_w" != "$ac_new_val_w"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 +-printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 ++printf '%s\n' "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 +-printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 ++printf '%s\n' "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 +-printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;} +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 +-printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 ++printf '%s\n' "$as_me: former value: '$ac_old_val'" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 ++printf '%s\n' "$as_me: current value: '$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in +- *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; ++ *\'*) ac_arg=$ac_var=`printf '%s\n' "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in +@@ -2987,10 +3089,10 @@ printf "%s\n" "$as_me: current value: + fi + done + if $ac_cache_corrupted; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +-printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 ++printf '%s\n' "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' + and start over" "$LINENO" 5 + fi +@@ -2998,6 +3100,23 @@ fi + ## Main body of script. ## + ## -------------------- ## + ++ ++# Determine whether it's possible to make 'echo' print without a newline. ++# These variables are no longer used directly by Autoconf, but are AC_SUBSTed ++# for compatibility with existing Makefiles. ++ECHO_C= ECHO_N= ECHO_T= ++case `echo -n x` in #((((( ++-n*) ++ case `echo 'xy\c'` in ++ *c*) ECHO_T=' ';; # ECHO_T is single tab character. ++ xy) ECHO_C='\c';; ++ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ++ ECHO_T=' ';; ++ esac;; ++*) ++ ECHO_N='-n';; ++esac ++ + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -3026,7 +3145,7 @@ am__api_version='1.18' + # OS/2's system install, which has a completely different semantic + # ./install, which can be erroneously created by make from ./install.sh. + # Reject install programs that cannot install multiple files. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 + printf %s "checking for a BSD-compatible install... " >&6; } + if test -z "$INSTALL"; then + if test ${ac_cv_path_install+y} +@@ -3049,8 +3168,8 @@ case $as_dir in #(( + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) +- # OSF1 and SCO ODT 3.0 have their own names for install. +- # Don't use installbsd from OSF since it installs stuff as root ++ # OSF/1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF/1 since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +@@ -3100,8 +3219,8 @@ fi + INSTALL=$ac_install_sh + fi + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +-printf "%s\n" "$INSTALL" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 ++printf '%s\n' "$INSTALL" >&6; } + + # Use test -z because SunOS4 sh mishandles braces in ${var-val}. + # It thinks the first close brace ends the variable substitution. +@@ -3111,7 +3230,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR + + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5 + printf %s "checking whether sleep supports fractional seconds... " >&6; } + if test ${am_cv_sleep_fractional_seconds+y} + then : +@@ -3127,10 +3246,10 @@ fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5 +-printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5 ++printf '%s\n' "$am_cv_sleep_fractional_seconds" >&6; } + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5 + printf %s "checking filesystem timestamp resolution... " >&6; } + if test ${am_cv_filesystem_timestamp_resolution+y} + then : +@@ -3182,9 +3301,9 @@ if ( + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". +- printf "%s\n" ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5 +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ printf '%s\n' ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5 ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "ls -t produces unexpected output. + Make sure there is not a broken ls alias in your environment. + See 'config.log' for more details" "$LINENO" 5; } +@@ -3265,12 +3384,12 @@ rm -f conftest.ts? + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5 +-printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5 ++printf '%s\n' "$am_cv_filesystem_timestamp_resolution" >&6; } + + # This check should not be cached, as it may vary across builds of + # different projects. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 + printf %s "checking whether build environment is sane... " >&6; } + # Reject unsafe characters in $srcdir or the absolute working directory + # name. Accept space and tab only in the latter. +@@ -3278,14 +3397,14 @@ am_lf=' + ' + case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; + esac + case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; + esac + +@@ -3315,8 +3434,8 @@ for am_try in 1 2; do + am_has_slept=yes + done + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5 +-printf "%s\n" "$am_build_env_is_sane" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5 ++printf '%s\n' "$am_build_env_is_sane" >&6; } + if test "$am_build_env_is_sane" = no; then + as_fn_error $? "newly created file is older than distributed files! + Check your system clock" "$LINENO" 5 +@@ -3345,7 +3464,7 @@ test "$program_suffix" != NONE && + # Double any \ or $. + # By default was 's,x,x', remove it if useless. + ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +-program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` ++program_transform_name=`printf '%s\n' "$program_transform_name" | sed "$ac_script"` + + + # Expand $ac_aux_dir to an absolute path. +@@ -3360,8 +3479,8 @@ if eval "$MISSING --is-lightweight"; the + am_missing_run="$MISSING " + else + am_missing_run= +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +-printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 ++printf '%s\n' "$as_me: WARNING: 'missing' script is too old or missing" >&2;} + fi + + if test x"${install_sh+set}" != xset; then +@@ -3381,7 +3500,7 @@ if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. + set dummy ${ac_tool_prefix}strip; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_STRIP+y} + then : +@@ -3402,7 +3521,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -3414,11 +3533,11 @@ esac + fi + STRIP=$ac_cv_prog_STRIP + if test -n "$STRIP"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +-printf "%s\n" "$STRIP" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 ++printf '%s\n' "$STRIP" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -3427,7 +3546,7 @@ if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. + set dummy strip; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_STRIP+y} + then : +@@ -3448,7 +3567,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -3460,11 +3579,11 @@ esac + fi + ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP + if test -n "$ac_ct_STRIP"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +-printf "%s\n" "$ac_ct_STRIP" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 ++printf '%s\n' "$ac_ct_STRIP" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + if test "x$ac_ct_STRIP" = x; then +@@ -3472,8 +3591,8 @@ fi + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + STRIP=$ac_ct_STRIP +@@ -3486,7 +3605,7 @@ fi + INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 + printf %s "checking for a race-free mkdir -p... " >&6; } + if test -z "$MKDIR_P"; then + if test ${ac_cv_path_mkdir+y} +@@ -3529,14 +3648,14 @@ fi + MKDIR_P='mkdir -p' + fi + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +-printf "%s\n" "$MKDIR_P" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 ++printf '%s\n' "$MKDIR_P" >&6; } + +-for ac_prog in gawk mawk nawk awk ++for ac_prog in gawk mawk nawk awk 'busybox awk' + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_AWK+y} + then : +@@ -3557,7 +3676,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -3569,21 +3688,21 @@ esac + fi + AWK=$ac_cv_prog_AWK + if test -n "$AWK"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +-printf "%s\n" "$AWK" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 ++printf '%s\n' "$AWK" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + + test -n "$AWK" && break + done + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 + printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } + set x ${MAKE-make} +-ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` ++ac_make=`printf '%s\n' "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` + if eval test \${ac_cv_prog_make_${ac_make}_set+y} + then : + printf %s "(cached) " >&6 +@@ -3591,7 +3710,7 @@ else case e in #( + e) cat >conftest.make <<\_ACEOF + SHELL = /bin/sh + all: +- @echo '@@@%%%=$(MAKE)=@@@%%%' ++ @printf '%s\n' '@@@%%%=$(MAKE)=@@@%%%' + _ACEOF + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + case `${MAKE-make} -f conftest.make 2>/dev/null` in +@@ -3604,12 +3723,12 @@ rm -f conftest.make ;; + esac + fi + if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + SET_MAKE= + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" + fi + +@@ -3630,13 +3749,13 @@ then : + fi + + am_make=${MAKE-make} +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 + printf %s "checking whether $am_make supports nested variables... " >&6; } + if test ${am_cv_make_support_nested_variables+y} + then : + printf %s "(cached) " >&6 + else case e in #( +- e) if printf "%s\n" 'TRUE=$(BAR$(V)) ++ e) if printf '%s\n' 'TRUE=$(BAR$(V)) + BAR0=false + BAR1=true + V=1 +@@ -3649,8 +3768,8 @@ else + fi ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +-printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 ++printf '%s\n' "$am_cv_make_support_nested_variables" >&6; } + AM_BACKSLASH='\' + + am__rm_f_notfound= +@@ -3663,7 +3782,7 @@ esac + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5 + printf %s "checking xargs -n works... " >&6; } + if test ${am_cv_xargs_n_works+y} + then : +@@ -3679,8 +3798,8 @@ esac + fi ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5 +-printf "%s\n" "$am_cv_xargs_n_works" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5 ++printf '%s\n' "$am_cv_xargs_n_works" >&6; } + if test "$am_cv_xargs_n_works" = yes + then : + am__xargs_n='xargs -n' +@@ -3715,10 +3834,10 @@ fi + VERSION='2.7.1' + + +-printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h ++printf '%s\n' "#define PACKAGE \"$PACKAGE\"" >>confdefs.h + + +-printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h ++printf '%s\n' "#define VERSION \"$VERSION\"" >>confdefs.h + + # Some tools Automake needs. + +@@ -3754,7 +3873,7 @@ _am_tools='gnutar pax cpio none' + + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 + printf %s "checking how to create a pax tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we +@@ -3838,8 +3957,8 @@ else case e in #( + esac + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 +-printf "%s\n" "$am_cv_prog_tar_pax" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 ++printf '%s\n' "$am_cv_prog_tar_pax" >&6; } + + + +@@ -3871,7 +3990,7 @@ fi + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_EMACS+y} + then : +@@ -3892,7 +4011,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_EMACS="$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -3904,11 +4023,11 @@ esac + fi + EMACS=$ac_cv_prog_EMACS + if test -n "$EMACS"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5 +-printf "%s\n" "$EMACS" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5 ++printf '%s\n' "$EMACS" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -3923,13 +4042,13 @@ test -n "$EMACS" || EMACS="no" + if test ${with_lispdir+y} + then : + withval=$with_lispdir; lispdir="$withval" +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 + printf %s "checking where .elc files should go... " >&6; } +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5 +-printf "%s\n" "$lispdir" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5 ++printf '%s\n' "$lispdir" >&6; } + else case e in #( + e) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 + printf %s "checking where .elc files should go... " >&6; } + if test ${am_cv_lispdir+y} + then : +@@ -3943,10 +4062,10 @@ else case e in #( + # which is non-obvious for non-emacs users. + # Redirecting /dev/null should help a bit; pity we can't detect "broken" + # emacsen earlier and avoid running this altogether. +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -no-site-file -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' conftest.out"; } >&5 ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -no-site-file -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' conftest.out"; } >&5 + ($EMACS -batch -no-site-file -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out) 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + am_cv_lispdir=`sed -n \ + -e 's,/$,,' \ +@@ -3960,8 +4079,8 @@ else case e in #( + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5 +-printf "%s\n" "$am_cv_lispdir" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5 ++printf '%s\n' "$am_cv_lispdir" >&6; } + lispdir="$am_cv_lispdir" + ;; + esac +@@ -3990,7 +4109,7 @@ for ac_prog in gawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_AWK+y} + then : +@@ -4011,7 +4130,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4023,11 +4142,11 @@ esac + fi + AWK=$ac_cv_prog_AWK + if test -n "$AWK"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +-printf "%s\n" "$AWK" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 ++printf '%s\n' "$AWK" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -4041,7 +4160,7 @@ done + $SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 + printf %s "checking build system type... " >&6; } + if test ${ac_cv_build+y} + then : +@@ -4057,8 +4176,8 @@ ac_cv_build=`$SHELL "${ac_aux_dir}config + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +-printf "%s\n" "$ac_cv_build" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 ++printf '%s\n' "$ac_cv_build" >&6; } + case $ac_cv_build in + *-*-*) ;; + *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +@@ -4074,10 +4193,10 @@ shift; shift + # except with old shells: + build_os=$* + IFS=$ac_save_IFS +-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac ++case $build_os in *\ *) build_os=`printf '%s\n' "$build_os" | sed 's/ /-/g'`;; esac + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 + printf %s "checking host system type... " >&6; } + if test ${ac_cv_host+y} + then : +@@ -4092,8 +4211,8 @@ fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +-printf "%s\n" "$ac_cv_host" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 ++printf '%s\n' "$ac_cv_host" >&6; } + case $ac_cv_host in + *-*-*) ;; + *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +@@ -4109,7 +4228,7 @@ shift; shift + # except with old shells: + host_os=$* + IFS=$ac_save_IFS +-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac ++case $host_os in *\ *) host_os=`printf '%s\n' "$host_os" | sed 's/ /-/g'`;; esac + + + canonical=$host +@@ -4132,8 +4251,8 @@ cat >>confdefs.h <<_ACEOF + _ACEOF + + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: host=$host" >&5 +-printf "%s\n" "host=$host" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: host=$host" >&5 ++printf '%s\n' "host=$host" >&6; } + + #use=unknown + case $canonical in +@@ -4204,7 +4323,7 @@ fi + + if test "$libboot" = "yes" ; then + +-printf "%s\n" "#define USE_LIBBOOT 1" >>confdefs.h ++printf '%s\n' "#define USE_LIBBOOT 1" >>confdefs.h + + fi + +@@ -4215,8 +4334,8 @@ then : + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: use=$use" >&5 +-printf "%s\n" "use=$use" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: use=$use" >&5 ++printf '%s\n' "use=$use" >&6; } + + def_pic="no"; + case $use in +@@ -4239,7 +4358,7 @@ esac + if test ${enable_widecons+y} + then : + enableval=$enable_widecons; if test "$enableval" = "yes" ; then +-printf "%s\n" "#define WIDE_CONS 1" >>confdefs.h ++printf '%s\n' "#define WIDE_CONS 1" >>confdefs.h + fi + fi + +@@ -4249,13 +4368,13 @@ if test ${enable_safecdr+y} + then : + enableval=$enable_safecdr; if test "$enableval" = "yes" ; then + +-printf "%s\n" "#define USE_SAFE_CDR 1" >>confdefs.h ++printf '%s\n' "#define USE_SAFE_CDR 1" >>confdefs.h + + # Check whether --enable-safecdrdbg was given. + if test ${enable_safecdrdbg+y} + then : + enableval=$enable_safecdrdbg; if test "$enableval" = "yes" ; then +-printf "%s\n" "#define DEBUG_SAFE_CDR 1" >>confdefs.h ++printf '%s\n' "#define DEBUG_SAFE_CDR 1" >>confdefs.h + fi + fi + +@@ -4275,7 +4394,7 @@ fi + if test ${enable_vssize+y} + then : + enableval=$enable_vssize; +-printf "%s\n" "#define VSSIZE $enableval" >>confdefs.h ++printf '%s\n' "#define VSSIZE $enableval" >>confdefs.h + + fi + +@@ -4283,7 +4402,7 @@ fi + if test ${enable_bdssize+y} + then : + enableval=$enable_bdssize; +-printf "%s\n" "#define BDSSIZE $enableval" >>confdefs.h ++printf '%s\n' "#define BDSSIZE $enableval" >>confdefs.h + + fi + +@@ -4291,7 +4410,7 @@ fi + if test ${enable_ihssize+y} + then : + enableval=$enable_ihssize; +-printf "%s\n" "#define IHSSIZE $enableval" >>confdefs.h ++printf '%s\n' "#define IHSSIZE $enableval" >>confdefs.h + + fi + +@@ -4299,7 +4418,7 @@ fi + if test ${enable_frssize+y} + then : + enableval=$enable_frssize; +-printf "%s\n" "#define FRSSIZE $enableval" >>confdefs.h ++printf '%s\n' "#define FRSSIZE $enableval" >>confdefs.h + + fi + +@@ -4376,11 +4495,14 @@ fi + + + ++ ++ ++ + DEPDIR="${am__leading_dot}deps" + + ac_config_commands="$ac_config_commands depfiles" + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 + printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } + cat > confinc.mk << 'END' + am__doit: +@@ -4417,8 +4539,8 @@ esac + fi + done + rm -f confinc.* confmf.* +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +-printf "%s\n" "${_am_result}" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 ++printf '%s\n' "${_am_result}" >&6; } + + # Check whether --enable-dependency-tracking was given. + if test ${enable_dependency_tracking+y} +@@ -4448,7 +4570,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. + set dummy ${ac_tool_prefix}gcc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -4469,7 +4591,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4481,11 +4603,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -4494,7 +4616,7 @@ if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_CC+y} + then : +@@ -4515,7 +4637,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4527,11 +4649,11 @@ esac + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-printf "%s\n" "$ac_ct_CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++printf '%s\n' "$ac_ct_CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + if test "x$ac_ct_CC" = x; then +@@ -4539,8 +4661,8 @@ fi + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +@@ -4553,7 +4675,7 @@ if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. + set dummy ${ac_tool_prefix}cc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -4574,7 +4696,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4586,11 +4708,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -4599,7 +4721,7 @@ fi + if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -4625,7 +4747,7 @@ do + continue + fi + ac_cv_prog_CC="cc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4649,11 +4771,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -4664,7 +4786,7 @@ if test -z "$CC"; then + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. + set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -4685,7 +4807,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4697,11 +4819,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -4714,7 +4836,7 @@ if test -z "$CC"; then + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_CC+y} + then : +@@ -4735,7 +4857,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4747,11 +4869,11 @@ esac + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-printf "%s\n" "$ac_ct_CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++printf '%s\n' "$ac_ct_CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -4763,8 +4885,8 @@ done + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +@@ -4776,7 +4898,7 @@ if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. + set dummy ${ac_tool_prefix}clang; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -4797,7 +4919,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4809,11 +4931,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -4822,7 +4944,7 @@ if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. + set dummy clang; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_CC+y} + then : +@@ -4843,7 +4965,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -4855,11 +4977,11 @@ esac + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-printf "%s\n" "$ac_ct_CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++printf '%s\n' "$ac_ct_CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + if test "x$ac_ct_CC" = x; then +@@ -4867,8 +4989,8 @@ fi + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +@@ -4880,13 +5002,13 @@ fi + fi + + +-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++test -z "$CC" && { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "no acceptable C compiler found in \$PATH + See 'config.log' for more details" "$LINENO" 5; } + + # Provide some information about the compiler. +-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 ++printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 + set X $ac_compile + ac_compiler=$2 + for ac_option in --version -v -V -qversion -version; do +@@ -4896,7 +5018,7 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then +@@ -4906,7 +5028,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + done + +@@ -4926,9 +5048,9 @@ ac_clean_files="$ac_clean_files a.out a. + # Try to create an executable without -o first, disregard a.out. + # It will help us diagnose broken compilers, and finding out an intuition + # of exeext. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 + printf %s "checking whether the C compiler works... " >&6; } +-ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ++ac_link_default=`printf '%s\n' "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + + # The possible output files: + ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" +@@ -4949,10 +5071,10 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then : + # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'. +@@ -4993,29 +5115,29 @@ esac + fi + if test -z "$ac_file" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } +-printf "%s\n" "$as_me: failed program was:" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ++printf '%s\n' "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error 77 "C compiler cannot create executables + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 + printf %s "checking for C compiler default output file name... " >&6; } +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +-printf "%s\n" "$ac_file" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 ++printf '%s\n' "$ac_file" >&6; } + ac_exeext=$ac_cv_exeext + + rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out + ac_clean_files=$ac_clean_files_save +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 + printf %s "checking for suffix of executables... " >&6; } + if { { ac_try="$ac_link" + case "(($ac_try" in +@@ -5023,10 +5145,10 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then : + # If both 'conftest.exe' and 'conftest' are 'present' (well, observable) +@@ -5043,15 +5165,15 @@ for ac_file in conftest.exe conftest con + esac + done + else case e in #( +- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot compute suffix of executables: cannot compile and link + See 'config.log' for more details" "$LINENO" 5; } ;; + esac + fi + rm -f conftest conftest$ac_cv_exeext +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +-printf "%s\n" "$ac_cv_exeext" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 ++printf '%s\n' "$ac_cv_exeext" >&6; } + + rm -f conftest.$ac_ext + EXEEXT=$ac_cv_exeext +@@ -5074,7 +5196,7 @@ _ACEOF + ac_clean_files="$ac_clean_files conftest.out" + # Check that the compiler produces executables we can run. If not, either + # the compiler is broken, or we cross compile. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 + printf %s "checking whether we are cross compiling... " >&6; } + if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +@@ -5083,10 +5205,10 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in +@@ -5094,31 +5216,31 @@ printf "%s\n" "$ac_try_echo"; } >&5 + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error 77 "cannot run C compiled programs. + If you meant to cross compile, use '--host'. + See 'config.log' for more details" "$LINENO" 5; } + fi + fi + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +-printf "%s\n" "$cross_compiling" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 ++printf '%s\n' "$cross_compiling" >&6; } + + rm -f conftest.$ac_ext conftest$ac_cv_exeext \ + conftest.o conftest.obj conftest.out + ac_clean_files=$ac_clean_files_save +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 + printf %s "checking for suffix of object files... " >&6; } + if test ${ac_cv_objext+y} + then : +@@ -5142,10 +5264,10 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then : + for ac_file in conftest.o conftest.obj conftest.*; do +@@ -5157,11 +5279,11 @@ then : + esac + done + else case e in #( +- e) printf "%s\n" "$as_me: failed program was:" >&5 ++ e) printf '%s\n' "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot compute suffix of object files: cannot compile + See 'config.log' for more details" "$LINENO" 5; } ;; + esac +@@ -5169,11 +5291,11 @@ fi + rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +-printf "%s\n" "$ac_cv_objext" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 ++printf '%s\n' "$ac_cv_objext" >&6; } + OBJEXT=$ac_cv_objext + ac_objext=$OBJEXT +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 + printf %s "checking whether the compiler supports GNU C... " >&6; } + if test ${ac_cv_c_compiler_gnu+y} + then : +@@ -5205,8 +5327,8 @@ ac_cv_c_compiler_gnu=$ac_compiler_gnu + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 ++printf '%s\n' "$ac_cv_c_compiler_gnu" >&6; } + ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test $ac_compiler_gnu = yes; then +@@ -5216,7 +5338,7 @@ else + fi + ac_test_CFLAGS=${CFLAGS+y} + ac_save_CFLAGS=$CFLAGS +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 + printf %s "checking whether $CC accepts -g... " >&6; } + if test ${ac_cv_prog_cc_g+y} + then : +@@ -5284,8 +5406,8 @@ rm -f core conftest.err conftest.$ac_obj + ac_c_werror_flag=$ac_save_c_werror_flag ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +-printf "%s\n" "$ac_cv_prog_cc_g" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 ++printf '%s\n' "$ac_cv_prog_cc_g" >&6; } + if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS + elif test $ac_cv_prog_cc_g = yes; then +@@ -5304,7 +5426,56 @@ fi + ac_prog_cc_stdc=no + if test x$ac_prog_cc_stdc = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C23 features" >&5 ++printf %s "checking for $CC option to enable C23 features... " >&6; } ++if test ${ac_cv_prog_cc_c23+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ac_cv_prog_cc_c23=no ++ac_save_CC=$CC ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$ac_c_conftest_c23_program ++_ACEOF ++for ac_arg in '' -std=gnu23 ++do ++ CC="$ac_save_CC $ac_arg" ++ if ac_fn_c_try_compile "$LINENO" ++then : ++ ac_cv_prog_cc_c23=$ac_arg ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.beam ++ test "x$ac_cv_prog_cc_c23" != "xno" && break ++done ++rm -f conftest.$ac_ext ++CC=$ac_save_CC ;; ++esac ++fi ++ ++if test "x$ac_cv_prog_cc_c23" = xno ++then : ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } ++else case e in #( ++ e) if test "x$ac_cv_prog_cc_c23" = x ++then : ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } ++else case e in #( ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c23" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c23" >&6; } ++ CC="$CC $ac_cv_prog_cc_c23" ;; ++esac ++fi ++ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c23 ++ ac_prog_cc_stdc=c23 ;; ++esac ++fi ++fi ++if test x$ac_prog_cc_stdc = xno ++then : ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 + printf %s "checking for $CC option to enable C11 features... " >&6; } + if test ${ac_cv_prog_cc_c11+y} + then : +@@ -5316,7 +5487,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ + /* end confdefs.h. */ + $ac_c_conftest_c11_program + _ACEOF +-for ac_arg in '' -std=gnu11 ++for ac_arg in '' -std=gnu11 -std:c11 + do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +@@ -5333,16 +5504,16 @@ fi + + if test "x$ac_cv_prog_cc_c11" = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +-printf "%s\n" "unsupported" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } + else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +-printf "%s\n" "none needed" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; + esac + fi +@@ -5353,7 +5524,7 @@ fi + fi + if test x$ac_prog_cc_stdc = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 + printf %s "checking for $CC option to enable C99 features... " >&6; } + if test ${ac_cv_prog_cc_c99+y} + then : +@@ -5382,16 +5553,16 @@ fi + + if test "x$ac_cv_prog_cc_c99" = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +-printf "%s\n" "unsupported" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } + else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +-printf "%s\n" "none needed" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; + esac + fi +@@ -5402,7 +5573,7 @@ fi + fi + if test x$ac_prog_cc_stdc = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 + printf %s "checking for $CC option to enable C89 features... " >&6; } + if test ${ac_cv_prog_cc_c89+y} + then : +@@ -5431,16 +5602,16 @@ fi + + if test "x$ac_cv_prog_cc_c89" = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +-printf "%s\n" "unsupported" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } + else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +-printf "%s\n" "none needed" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; + esac + fi +@@ -5462,7 +5633,7 @@ ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 + printf %s "checking whether $CC understands -c and -o together... " >&6; } + if test ${am_cv_prog_cc_c_o+y} + then : +@@ -5504,8 +5675,8 @@ _ACEOF + unset am_i ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +-printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 ++printf '%s\n' "$am_cv_prog_cc_c_o" >&6; } + if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. +@@ -5523,7 +5694,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 + printf %s "checking dependency style of $depcc... " >&6; } + if test ${am_cv_CC_dependencies_compiler_type+y} + then : +@@ -5636,8 +5807,8 @@ fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +-printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 ++printf '%s\n' "$am_cv_CC_dependencies_compiler_type" >&6; } + CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if +@@ -5658,7 +5829,7 @@ do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then +- printf "%s\n" "#define $ac_item 1" >> confdefs.h ++ printf '%s\n' "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then +@@ -5678,7 +5849,7 @@ done + if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes + then : + +-printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h ++printf '%s\n' "#define STDC_HEADERS 1" >>confdefs.h + + fi + +@@ -5687,7 +5858,7 @@ fi + + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 + printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } + if test ${ac_cv_safe_to_define___extensions__+y} + then : +@@ -5716,10 +5887,10 @@ fi + rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +-printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 ++printf '%s\n' "$ac_cv_safe_to_define___extensions__" >&6; } + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 + printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } + if test ${ac_cv_should_define__xopen_source+y} + then : +@@ -5770,49 +5941,51 @@ rm -f core conftest.err conftest.$ac_obj + fi ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +-printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 ++printf '%s\n' "$ac_cv_should_define__xopen_source" >&6; } ++ ++ printf '%s\n' "#define _ALL_SOURCE 1" >>confdefs.h + +- printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h ++ printf '%s\n' "#define _COSMO_SOURCE 1" >>confdefs.h + +- printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h ++ printf '%s\n' "#define _DARWIN_C_SOURCE 1" >>confdefs.h + +- printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h ++ printf '%s\n' "#define _GNU_SOURCE 1" >>confdefs.h + +- printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h ++ printf '%s\n' "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h + +- printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h ++ printf '%s\n' "#define _NETBSD_SOURCE 1" >>confdefs.h + +- printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h ++ printf '%s\n' "#define _OPENBSD_SOURCE 1" >>confdefs.h + +- printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h ++ printf '%s\n' "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h + +- printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h ++ printf '%s\n' "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h + +- printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h ++ printf '%s\n' "#define _TANDEM_SOURCE 1" >>confdefs.h + + if test $ac_cv_header_minix_config_h = yes + then : + MINIX=yes +- printf "%s\n" "#define _MINIX 1" >>confdefs.h ++ printf '%s\n' "#define _MINIX 1" >>confdefs.h + +- printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h ++ printf '%s\n' "#define _POSIX_SOURCE 1" >>confdefs.h + +- printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h ++ printf '%s\n' "#define _POSIX_1_SOURCE 2" >>confdefs.h + + else case e in #( + e) MINIX= ;; +@@ -5820,19 +5993,19 @@ esac + fi + if test $ac_cv_safe_to_define___extensions__ = yes + then : +- printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h ++ printf '%s\n' "#define __EXTENSIONS__ 1" >>confdefs.h + + fi + if test $ac_cv_should_define__xopen_source = yes + then : +- printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h ++ printf '%s\n' "#define _XOPEN_SOURCE 500" >>confdefs.h + + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. + set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_RANLIB+y} + then : +@@ -5853,7 +6026,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -5865,11 +6038,11 @@ esac + fi + RANLIB=$ac_cv_prog_RANLIB + if test -n "$RANLIB"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +-printf "%s\n" "$RANLIB" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 ++printf '%s\n' "$RANLIB" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -5878,7 +6051,7 @@ if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. + set dummy ranlib; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_RANLIB+y} + then : +@@ -5899,7 +6072,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -5911,11 +6084,11 @@ esac + fi + ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB + if test -n "$ac_ct_RANLIB"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +-printf "%s\n" "$ac_ct_RANLIB" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 ++printf '%s\n' "$ac_ct_RANLIB" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + if test "x$ac_ct_RANLIB" = x; then +@@ -5923,8 +6096,8 @@ fi + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + RANLIB=$ac_ct_RANLIB +@@ -5941,7 +6114,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. + set dummy ${ac_tool_prefix}gcc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -5962,7 +6135,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -5974,11 +6147,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -5987,7 +6160,7 @@ if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_CC+y} + then : +@@ -6008,7 +6181,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6020,11 +6193,11 @@ esac + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-printf "%s\n" "$ac_ct_CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++printf '%s\n' "$ac_ct_CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + if test "x$ac_ct_CC" = x; then +@@ -6032,8 +6205,8 @@ fi + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +@@ -6046,7 +6219,7 @@ if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. + set dummy ${ac_tool_prefix}cc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -6067,7 +6240,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6079,11 +6252,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -6092,7 +6265,7 @@ fi + if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -6118,7 +6291,7 @@ do + continue + fi + ac_cv_prog_CC="cc" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6142,11 +6315,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -6157,7 +6330,7 @@ if test -z "$CC"; then + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. + set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -6178,7 +6351,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6190,11 +6363,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -6207,7 +6380,7 @@ if test -z "$CC"; then + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_CC+y} + then : +@@ -6228,7 +6401,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6240,11 +6413,11 @@ esac + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-printf "%s\n" "$ac_ct_CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++printf '%s\n' "$ac_ct_CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -6256,8 +6429,8 @@ done + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +@@ -6269,7 +6442,7 @@ if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. + set dummy ${ac_tool_prefix}clang; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_CC+y} + then : +@@ -6290,7 +6463,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6302,11 +6475,11 @@ esac + fi + CC=$ac_cv_prog_CC + if test -n "$CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +-printf "%s\n" "$CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ++printf '%s\n' "$CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -6315,7 +6488,7 @@ if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. + set dummy clang; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_ac_ct_CC+y} + then : +@@ -6336,7 +6509,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -6348,11 +6521,11 @@ esac + fi + ac_ct_CC=$ac_cv_prog_ac_ct_CC + if test -n "$ac_ct_CC"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +-printf "%s\n" "$ac_ct_CC" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ++printf '%s\n' "$ac_ct_CC" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + if test "x$ac_ct_CC" = x; then +@@ -6360,8 +6533,8 @@ fi + else + case $cross_compiling:$ac_tool_warned in + yes:) +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} + ac_tool_warned=yes ;; + esac + CC=$ac_ct_CC +@@ -6373,13 +6546,13 @@ fi + fi + + +-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++test -z "$CC" && { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "no acceptable C compiler found in \$PATH + See 'config.log' for more details" "$LINENO" 5; } + + # Provide some information about the compiler. +-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 ++printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 + set X $ac_compile + ac_compiler=$2 + for ac_option in --version -v -V -qversion -version; do +@@ -6389,7 +6562,7 @@ case "(($ac_try" in + *) ac_try_echo=$ac_try;; + esac + eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +-printf "%s\n" "$ac_try_echo"; } >&5 ++printf '%s\n' "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then +@@ -6399,11 +6572,11 @@ printf "%s\n" "$ac_try_echo"; } >&5 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + done + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 + printf %s "checking whether the compiler supports GNU C... " >&6; } + if test ${ac_cv_c_compiler_gnu+y} + then : +@@ -6435,8 +6608,8 @@ ac_cv_c_compiler_gnu=$ac_compiler_gnu + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 ++printf '%s\n' "$ac_cv_c_compiler_gnu" >&6; } + ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test $ac_compiler_gnu = yes; then +@@ -6446,7 +6619,7 @@ else + fi + ac_test_CFLAGS=${CFLAGS+y} + ac_save_CFLAGS=$CFLAGS +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 + printf %s "checking whether $CC accepts -g... " >&6; } + if test ${ac_cv_prog_cc_g+y} + then : +@@ -6514,8 +6687,8 @@ rm -f core conftest.err conftest.$ac_obj + ac_c_werror_flag=$ac_save_c_werror_flag ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +-printf "%s\n" "$ac_cv_prog_cc_g" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 ++printf '%s\n' "$ac_cv_prog_cc_g" >&6; } + if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS + elif test $ac_cv_prog_cc_g = yes; then +@@ -6534,7 +6707,56 @@ fi + ac_prog_cc_stdc=no + if test x$ac_prog_cc_stdc = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C23 features" >&5 ++printf %s "checking for $CC option to enable C23 features... " >&6; } ++if test ${ac_cv_prog_cc_c23+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ac_cv_prog_cc_c23=no ++ac_save_CC=$CC ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++$ac_c_conftest_c23_program ++_ACEOF ++for ac_arg in '' -std=gnu23 ++do ++ CC="$ac_save_CC $ac_arg" ++ if ac_fn_c_try_compile "$LINENO" ++then : ++ ac_cv_prog_cc_c23=$ac_arg ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.beam ++ test "x$ac_cv_prog_cc_c23" != "xno" && break ++done ++rm -f conftest.$ac_ext ++CC=$ac_save_CC ;; ++esac ++fi ++ ++if test "x$ac_cv_prog_cc_c23" = xno ++then : ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } ++else case e in #( ++ e) if test "x$ac_cv_prog_cc_c23" = x ++then : ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } ++else case e in #( ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c23" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c23" >&6; } ++ CC="$CC $ac_cv_prog_cc_c23" ;; ++esac ++fi ++ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c23 ++ ac_prog_cc_stdc=c23 ;; ++esac ++fi ++fi ++if test x$ac_prog_cc_stdc = xno ++then : ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 + printf %s "checking for $CC option to enable C11 features... " >&6; } + if test ${ac_cv_prog_cc_c11+y} + then : +@@ -6546,7 +6768,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ + /* end confdefs.h. */ + $ac_c_conftest_c11_program + _ACEOF +-for ac_arg in '' -std=gnu11 ++for ac_arg in '' -std=gnu11 -std:c11 + do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +@@ -6563,16 +6785,16 @@ fi + + if test "x$ac_cv_prog_cc_c11" = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +-printf "%s\n" "unsupported" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } + else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +-printf "%s\n" "none needed" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; + esac + fi +@@ -6583,7 +6805,7 @@ fi + fi + if test x$ac_prog_cc_stdc = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 + printf %s "checking for $CC option to enable C99 features... " >&6; } + if test ${ac_cv_prog_cc_c99+y} + then : +@@ -6612,16 +6834,16 @@ fi + + if test "x$ac_cv_prog_cc_c99" = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +-printf "%s\n" "unsupported" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } + else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +-printf "%s\n" "none needed" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; + esac + fi +@@ -6632,7 +6854,7 @@ fi + fi + if test x$ac_prog_cc_stdc = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 + printf %s "checking for $CC option to enable C89 features... " >&6; } + if test ${ac_cv_prog_cc_c89+y} + then : +@@ -6661,16 +6883,16 @@ fi + + if test "x$ac_cv_prog_cc_c89" = xno + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +-printf "%s\n" "unsupported" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 ++printf '%s\n' "unsupported" >&6; } + else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +-printf "%s\n" "none needed" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 ++printf '%s\n' "none needed" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 ++printf '%s\n' "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; + esac + fi +@@ -6692,7 +6914,7 @@ ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 + printf %s "checking whether $CC understands -c and -o together... " >&6; } + if test ${am_cv_prog_cc_c_o+y} + then : +@@ -6734,8 +6956,8 @@ _ACEOF + unset am_i ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +-printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 ++printf '%s\n' "$am_cv_prog_cc_c_o" >&6; } + if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. +@@ -6753,7 +6975,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + depcc="$CC" am_compiler_list= + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 + printf %s "checking dependency style of $depcc... " >&6; } + if test ${am_cv_CC_dependencies_compiler_type+y} + then : +@@ -6866,8 +7088,8 @@ fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +-printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 ++printf '%s\n' "$am_cv_CC_dependencies_compiler_type" >&6; } + CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if +@@ -6886,7 +7108,7 @@ ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 + printf %s "checking how to run the C preprocessor... " >&6; } + # On Suns, sometimes $CPP names a directory. + if test -n "$CPP" && test -d "$CPP"; then +@@ -6957,8 +7179,8 @@ fi + else + ac_cv_prog_CPP=$CPP + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +-printf "%s\n" "$CPP" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 ++printf '%s\n' "$CPP" >&6; } + ac_preproc_ok=false + for ac_c_preproc_warn_flag in '' yes + do +@@ -7006,8 +7228,8 @@ if $ac_preproc_ok + then : + + else case e in #( +- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "C preprocessor \"$CPP\" fails sanity check + See 'config.log' for more details" "$LINENO" 5; } ;; + esac +@@ -7029,14 +7251,14 @@ fi + + add_arg_to_cppflags() { + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CPPFLAG $1" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for CPPFLAG $1" >&5 + printf %s "checking for CPPFLAG $1... " >&6; } + CPPFLAGS_ORI=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`" + if test "$cross_compiling" = yes + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -7051,11 +7273,11 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- CPPFLAGS="$CPPFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; };return 0 ++ CPPFLAGS="$CPPFLAGS_ORI $1";{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; };return 0 + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -7069,8 +7291,8 @@ fi + } + + assert_arg_to_cppflags() { +- if ! add_arg_to_cppflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CPPFLAGS" >&5 +-printf "%s\n" "cannot add $1 to CPPFLAGS" >&6; }; exit 1 ; fi ++ if ! add_arg_to_cppflags $1 ; then { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CPPFLAGS" >&5 ++printf '%s\n' "cannot add $1 to CPPFLAGS" >&6; }; exit 1 ; fi + return 0 + } + +@@ -7084,14 +7306,14 @@ add_args_to_cppflags() { + + add_arg_to_cflags() { + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLAG $1" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for CFLAG $1" >&5 + printf %s "checking for CFLAG $1... " >&6; } + CFLAGS_ORI=$CFLAGS + CFLAGS="$CFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`" + if test "$cross_compiling" = yes + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -7106,11 +7328,11 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- CFLAGS="$CFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; };return 0 ++ CFLAGS="$CFLAGS_ORI $1";{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; };return 0 + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -7124,8 +7346,8 @@ fi + } + + assert_arg_to_cflags() { +- if ! add_arg_to_cflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CFLAGS" >&5 +-printf "%s\n" "cannot add $1 to CFLAGS" >&6; }; exit 1 ; fi ++ if ! add_arg_to_cflags $1 ; then { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CFLAGS" >&5 ++printf '%s\n' "cannot add $1 to CFLAGS" >&6; }; exit 1 ; fi + return 0 + } + +@@ -7139,14 +7361,14 @@ add_args_to_cflags() { + + add_arg_to_ldflags() { + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LDFLAG $1" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for LDFLAG $1" >&5 + printf %s "checking for LDFLAG $1... " >&6; } + LDFLAGS_ORI=$LDFLAGS + LDFLAGS="$LDFLAGS -Werror $1" + if test "$cross_compiling" = yes + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -7161,11 +7383,11 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- LDFLAGS="$LDFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; };return 0 ++ LDFLAGS="$LDFLAGS_ORI $1";{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; };return 0 + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -7179,8 +7401,8 @@ fi + } + + assert_arg_to_ldflags() { +- if ! add_arg_to_ldflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to LDFLAGS" >&5 +-printf "%s\n" "cannot add $1 to LDFLAGS" >&6; }; exit 1 ; fi ++ if ! add_arg_to_ldflags $1 ; then { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to LDFLAGS" >&5 ++printf '%s\n' "cannot add $1 to LDFLAGS" >&6; }; exit 1 ; fi + return 0 + } + +@@ -7199,8 +7421,8 @@ remove_arg_from_ldflags() { + if ! test "$i" = "$1" ; then + NEW_LDFLAGS="$NEW_LDFLAGS $i" + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: removing $1 from LDFLAGS" >&5 +-printf "%s\n" "removing $1 from LDFLAGS" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: removing $1 from LDFLAGS" >&5 ++printf '%s\n' "removing $1 from LDFLAGS" >&6; } + fi + done + LDFLAGS=$NEW_LDFLAGS +@@ -7220,7 +7442,7 @@ add_args_to_cflags -fsigned-char -pipe + + add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5 + printf %s "checking for inline semantics... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -7234,8 +7456,8 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + if `nm conftest.o |grep foo |awk '{if (NF==3) exit(-1)}'` ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: new" >&5 +-printf "%s\n" "new" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: new" >&5 ++printf '%s\n' "new" >&6; } + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -7249,10 +7471,10 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + if `nm conftest.o |grep foo |awk '{if (NF==3) exit(-1)}'` ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: old" >&5 +-printf "%s\n" "old" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: old" >&5 ++printf '%s\n' "old" >&6; } + +-printf "%s\n" "#define OLD_INLINE 1" >>confdefs.h ++printf '%s\n' "#define OLD_INLINE 1" >>confdefs.h + + else + as_fn_error $? "need working inline semantics" "$LINENO" 5 +@@ -7338,7 +7560,7 @@ esac + fi + + +-printf "%s\n" "#define INITIAL_HEAP_VMSIZE $INITIAL_HEAP_VMSIZE" >>confdefs.h ++printf '%s\n' "#define INITIAL_HEAP_VMSIZE $INITIAL_HEAP_VMSIZE" >>confdefs.h + + + #Support libboot option +@@ -7352,7 +7574,7 @@ esac + fi + + +-printf "%s\n" "#define SAVED_PRE_IMAGE_SPAN $SAVED_PRE_IMAGE_SPAN" >>confdefs.h ++printf '%s\n' "#define SAVED_PRE_IMAGE_SPAN $SAVED_PRE_IMAGE_SPAN" >>confdefs.h + + + # Check whether --enable-saved_image_span was given. +@@ -7365,7 +7587,7 @@ esac + fi + + +-printf "%s\n" "#define SAVED_IMAGE_SPAN $SAVED_IMAGE_SPAN" >>confdefs.h ++printf '%s\n' "#define SAVED_IMAGE_SPAN $SAVED_IMAGE_SPAN" >>confdefs.h + + ;; + esac +@@ -7374,7 +7596,7 @@ if test "$enable_static" = "yes" ; then + assert_arg_to_ldflags -static + assert_arg_to_ldflags -Wl,-zmuldefs + +-printf "%s\n" "#define STATIC_LINKING 1" >>confdefs.h ++printf '%s\n' "#define STATIC_LINKING 1" >>confdefs.h + + fi + +@@ -7395,7 +7617,7 @@ for ac_prog in gawk nawk awk + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_AWK+y} + then : +@@ -7416,7 +7638,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -7428,11 +7650,11 @@ esac + fi + AWK=$ac_cv_prog_AWK + if test -n "$AWK"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +-printf "%s\n" "$AWK" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 ++printf '%s\n' "$AWK" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -7465,16 +7687,16 @@ if test "$GPROF" != "" ; then + OLD_CFLAGS=$CFLAGS + if ! add_arg_to_cflags -pg ; then GPROF="" ; fi + CFLAGS=$OLD_CFLAGS +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking working gprof" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking working gprof" >&5 + printf %s "checking working gprof... " >&6; } + if test "$GPROF" = "" ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 +-printf "%s\n" "disabled" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 ++printf '%s\n' "disabled" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +-printf "%s\n" "ok" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5 ++printf '%s\n' "ok" >&6; } + +-printf "%s\n" "#define USE_GPROF 1" >>confdefs.h ++printf '%s\n' "#define USE_GPROF 1" >>confdefs.h + + fi + fi +@@ -7629,7 +7851,7 @@ for ac_prog in makeinfo + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_MAKEINFO+y} + then : +@@ -7650,7 +7872,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_MAKEINFO="$ac_prog" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -7662,11 +7884,11 @@ esac + fi + MAKEINFO=$ac_cv_prog_MAKEINFO + if test -n "$MAKEINFO"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5 +-printf "%s\n" "$MAKEINFO" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5 ++printf '%s\n' "$MAKEINFO" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -7676,7 +7898,7 @@ test -n "$MAKEINFO" || MAKEINFO=""false" + + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system version (for dynamic loading)" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking system version (for dynamic loading)" >&5 + printf %s "checking system version (for dynamic loading)... " >&6; } + if machine=`uname -m` ; then true; else machine=unknown ; fi + +@@ -7685,8 +7907,8 @@ if test -f /usr/lib/NextStep/software_ve + else + system=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unknown (cannot find uname command)" >&5 +-printf "%s\n" "unknown (cannot find uname command)" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unknown (cannot find uname command)" >&5 ++printf '%s\n' "unknown (cannot find uname command)" >&6; } + system=unknown + else + # Special check for weird MP-RAS system (uname returns weird +@@ -7698,8 +7920,8 @@ printf "%s\n" "unknown (cannot find unam + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` + fi +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $system" >&5 +-printf "%s\n" "$system" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $system" >&5 ++printf '%s\n' "$system" >&6; } + fi + fi + +@@ -7710,7 +7932,7 @@ do : + ac_fn_c_check_header_compile "$LINENO" "malloc/malloc.h" "ac_cv_header_malloc_malloc_h" "$ac_includes_default" + if test "x$ac_cv_header_malloc_malloc_h" = xyes + then : +- printf "%s\n" "#define HAVE_MALLOC_MALLOC_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_MALLOC_MALLOC_H 1" >>confdefs.h + + else case e in #( + e) as_fn_error $? "need malloc.h on macosx" "$LINENO" 5 ;; +@@ -7725,7 +7947,7 @@ done + if test "x$ac_cv_member_struct__malloc_zone_t_memalign" = xyes + then : + +-printf "%s\n" "#define HAVE_MALLOC_ZONE_MEMALIGN 1" >>confdefs.h ++printf '%s\n' "#define HAVE_MALLOC_ZONE_MEMALIGN 1" >>confdefs.h + + fi + +@@ -7738,13 +7960,13 @@ do : + ac_fn_c_check_header_compile "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "$ac_includes_default" + if test "x$ac_cv_header_setjmp_h" = xyes + then : +- printf "%s\n" "#define HAVE_SETJMP_H 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking sizeof jmp_buf" >&5 ++ printf '%s\n' "#define HAVE_SETJMP_H 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking sizeof jmp_buf" >&5 + printf %s "checking sizeof jmp_buf... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -7769,14 +7991,14 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + sizeof_jmp_buf=`cat conftest1` +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sizeof_jmp_buf" >&5 +-printf "%s\n" "$sizeof_jmp_buf" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $sizeof_jmp_buf" >&5 ++printf '%s\n' "$sizeof_jmp_buf" >&6; } + +-printf "%s\n" "#define SIZEOF_JMP_BUF $sizeof_jmp_buf" >>confdefs.h ++printf '%s\n' "#define SIZEOF_JMP_BUF $sizeof_jmp_buf" >>confdefs.h + + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -7794,8 +8016,8 @@ do : + ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" + if test "x$ac_cv_header_unistd_h" = xyes + then : +- printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysconf in -lc" >&5 ++ printf '%s\n' "#define HAVE_UNISTD_H 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sysconf in -lc" >&5 + printf %s "checking for sysconf in -lc... " >&6; } + if test ${ac_cv_lib_c_sysconf+y} + then : +@@ -7836,17 +8058,17 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sysconf" >&5 +-printf "%s\n" "$ac_cv_lib_c_sysconf" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sysconf" >&5 ++printf '%s\n' "$ac_cv_lib_c_sysconf" >&6; } + if test "x$ac_cv_lib_c_sysconf" = xyes + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking _SC_CLK_TCK" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking _SC_CLK_TCK" >&5 + printf %s "checking _SC_CLK_TCK... " >&6; } + hz=0 + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -7877,8 +8099,8 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hz" >&5 +-printf "%s\n" "$hz" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hz" >&5 ++printf '%s\n' "$hz" >&6; } + fi + + fi +@@ -7891,8 +8113,8 @@ do : + ac_fn_c_check_header_compile "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default" + if test "x$ac_cv_header_gmp_h" = xyes + then : +- printf "%s\n" "#define HAVE_GMP_H 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __gmpz_init in -lgmp" >&5 ++ printf '%s\n' "#define HAVE_GMP_H 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __gmpz_init in -lgmp" >&5 + printf %s "checking for __gmpz_init in -lgmp... " >&6; } + if test ${ac_cv_lib_gmp___gmpz_init+y} + then : +@@ -7933,16 +8155,16 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_init" >&5 +-printf "%s\n" "$ac_cv_lib_gmp___gmpz_init" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_init" >&5 ++printf '%s\n' "$ac_cv_lib_gmp___gmpz_init" >&6; } + if test "x$ac_cv_lib_gmp___gmpz_init" = xyes + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for external gmp version" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for external gmp version" >&5 + printf %s "checking for external gmp version... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -7967,8 +8189,8 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: good" >&5 +-printf "%s\n" "good" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: good" >&5 ++printf '%s\n' "good" >&6; } + TLIBS="$TLIBS -lgmp" + echo "#include \"gmp.h\"" >foo.c + echo "int main() {return 0;}" >>foo.c +@@ -7991,7 +8213,7 @@ if test "$MP_INCLUDE" = "" ; then + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for leading underscore in object symbols" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for leading underscore in object symbols" >&5 + printf %s "checking for leading underscore in object symbols... " >&6; } + cat>foo.c < +@@ -8002,22 +8224,22 @@ $CC -c foo.c -o foo.o + if nm foo.o |grep " U " | grep "_cos" >/dev/null || nm foo.o |grep " U " | grep " _getc" >/dev/null ; then + LEADING_UNDERSCORE=1 + +-printf "%s\n" "#define LEADING_UNDERSCORE 1" >>confdefs.h ++printf '%s\n' "#define LEADING_UNDERSCORE 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"yes\"" >&5 +-printf "%s\n" "\"yes\"" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: \"yes\"" >&5 ++printf '%s\n' "\"yes\"" >&6; } + else + LEADING_UNDERSCORE="" +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5 +-printf "%s\n" "\"no\"" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5 ++printf '%s\n' "\"no\"" >&6; } + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for size of gmp limbs" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for size of gmp limbs" >&5 + printf %s "checking for size of gmp limbs... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -8052,17 +8274,17 @@ esac + fi + + +-printf "%s\n" "#define MP_LIMB_BYTES $mpsize" >>confdefs.h ++printf '%s\n' "#define MP_LIMB_BYTES $mpsize" >>confdefs.h + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $mpsize" >&5 +-printf "%s\n" "$mpsize" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $mpsize" >&5 ++printf '%s\n' "$mpsize" >&6; } + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking _SHORT_LIMB" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking _SHORT_LIMB" >&5 + printf %s "checking _SHORT_LIMB... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -8089,12 +8311,12 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define __SHORT_LIMB 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++printf '%s\n' "#define __SHORT_LIMB 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -8103,12 +8325,12 @@ esac + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking _LONG_LONG_LIMB" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking _LONG_LONG_LIMB" >&5 + printf %s "checking _LONG_LONG_LIMB... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -8135,12 +8357,12 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define __LONG_LONG_LIMB 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++printf '%s\n' "#define __LONG_LONG_LIMB 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -8151,25 +8373,25 @@ fi + + GMP=1 + +-printf "%s\n" "#define GMP 1" >>confdefs.h ++printf '%s\n' "#define GMP 1" >>confdefs.h + + + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld option -Map" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GNU ld option -Map" >&5 + printf %s "checking for GNU ld option -Map... " >&6; } + touch map foo.c + $CC -o foo -Wl,-Map map foo.c >/dev/null 2>&1 + if test `cat map | wc -l` != "0" ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + +-printf "%s\n" "#define HAVE_GNU_LD 1" >>confdefs.h ++printf '%s\n' "#define HAVE_GNU_LD 1" >>confdefs.h + + GNU_LD=1 + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + GNU_LD= + fi + rm -f foo.c foo.o foo map +@@ -8181,7 +8403,7 @@ rm -f foo.c foo.o foo map + if test "$enable_xgcl" = "yes" ; then + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for X" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for X" >&5 + printf %s "checking for X... " >&6; } + + +@@ -8237,11 +8459,11 @@ if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' + incroot: +- @echo incroot='${INCROOT}' ++ @printf '%s\n' incroot='${INCROOT}' + usrlibdir: +- @echo usrlibdir='${USRLIBDIR}' ++ @printf '%s\n' usrlibdir='${USRLIBDIR}' + libdir: +- @echo libdir='${LIBDIR}' ++ @printf '%s\n' libdir='${LIBDIR}' + _ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +@@ -8361,7 +8583,7 @@ then : + ac_x_libraries= + else case e in #( + e) LIBS=$ac_save_LIBS +-for ac_dir in `printf "%s\n" "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` ++for ac_dir in `printf '%s\n' "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` + do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do +@@ -8398,8 +8620,8 @@ fi + fi # $with_x != no + + if test "$have_x" != yes; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +-printf "%s\n" "$have_x" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 ++printf '%s\n' "$have_x" >&6; } + no_x=yes + else + # If each of the values was on the command line, it overrides each guess. +@@ -8409,12 +8631,12 @@ else + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +-printf "%s\n" "libraries $x_libraries, headers $x_includes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 ++printf '%s\n' "libraries $x_libraries, headers $x_includes" >&6; } + fi + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lX11" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lX11" >&5 + printf %s "checking for main in -lX11... " >&6; } + if test ${ac_cv_lib_X11_main+y} + then : +@@ -8446,16 +8668,16 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_main" >&5 +-printf "%s\n" "$ac_cv_lib_X11_main" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_main" >&5 ++printf '%s\n' "$ac_cv_lib_X11_main" >&6; } + if test "x$ac_cv_lib_X11_main" = xyes + then : + X_LIBS="$X_LIBS -lX11" +-printf "%s\n" "#define HAVE_XGCL 1" >>confdefs.h ++printf '%s\n' "#define HAVE_XGCL 1" >>confdefs.h + + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: missing x libraries -- cannot compile xgcl" >&5 +-printf "%s\n" "missing x libraries -- cannot compile xgcl" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: missing x libraries -- cannot compile xgcl" >&5 ++printf '%s\n' "missing x libraries -- cannot compile xgcl" >&6; } ;; + esac + fi + +@@ -8479,7 +8701,7 @@ fi + # + + # boot.so requires dlopen +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 + printf %s "checking for dlopen in -ldl... " >&6; } + if test ${ac_cv_lib_dl_dlopen+y} + then : +@@ -8520,11 +8742,11 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 ++printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; } + if test "x$ac_cv_lib_dl_dlopen" = xyes + then : +- printf "%s\n" "#define HAVE_LIBDL 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_LIBDL 1" >>confdefs.h + + LIBS="-ldl $LIBS" + +@@ -8549,7 +8771,7 @@ if test "x$ac_cv_func_xdr_double" = xyes + then : + XDR_LIB=" " + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -ltirpc" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -ltirpc" >&5 + printf %s "checking for xdr_double in -ltirpc... " >&6; } + if test ${ac_cv_lib_tirpc_xdr_double+y} + then : +@@ -8590,13 +8812,13 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tirpc_xdr_double" >&5 +-printf "%s\n" "$ac_cv_lib_tirpc_xdr_double" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tirpc_xdr_double" >&5 ++printf '%s\n' "$ac_cv_lib_tirpc_xdr_double" >&6; } + if test "x$ac_cv_lib_tirpc_xdr_double" = xyes + then : + XDR_LIB=tirpc + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lgssrpc" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lgssrpc" >&5 + printf %s "checking for xdr_double in -lgssrpc... " >&6; } + if test ${ac_cv_lib_gssrpc_xdr_double+y} + then : +@@ -8637,13 +8859,13 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssrpc_xdr_double" >&5 +-printf "%s\n" "$ac_cv_lib_gssrpc_xdr_double" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssrpc_xdr_double" >&5 ++printf '%s\n' "$ac_cv_lib_gssrpc_xdr_double" >&6; } + if test "x$ac_cv_lib_gssrpc_xdr_double" = xyes + then : + XDR_LIB=gssrpc + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lrpc" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -lrpc" >&5 + printf %s "checking for xdr_double in -lrpc... " >&6; } + if test ${ac_cv_lib_rpc_xdr_double+y} + then : +@@ -8684,13 +8906,13 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpc_xdr_double" >&5 +-printf "%s\n" "$ac_cv_lib_rpc_xdr_double" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpc_xdr_double" >&5 ++printf '%s\n' "$ac_cv_lib_rpc_xdr_double" >&6; } + if test "x$ac_cv_lib_rpc_xdr_double" = xyes + then : + XDR_LIB=rpc + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -loncrpc" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xdr_double in -loncrpc" >&5 + printf %s "checking for xdr_double in -loncrpc... " >&6; } + if test ${ac_cv_lib_oncrpc_xdr_double+y} + then : +@@ -8731,8 +8953,8 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_oncrpc_xdr_double" >&5 +-printf "%s\n" "$ac_cv_lib_oncrpc_xdr_double" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_oncrpc_xdr_double" >&5 ++printf '%s\n' "$ac_cv_lib_oncrpc_xdr_double" >&6; } + if test "x$ac_cv_lib_oncrpc_xdr_double" = xyes + then : + XDR_LIB=oncrpc +@@ -8753,7 +8975,7 @@ fi + + if test "$XDR_LIB" != ""; then + +-printf "%s\n" "#define HAVE_XDR 1" >>confdefs.h ++printf '%s\n' "#define HAVE_XDR 1" >>confdefs.h + + if test "$XDR_LIB" != " "; then + TLIBS="$TLIBS -l$XDR_LIB" +@@ -8763,12 +8985,12 @@ printf "%s\n" "#define HAVE_XDR 1" >>con + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin_clzl" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking __builtin_clzl" >&5 + printf %s "checking __builtin_clzl... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -8796,14 +9018,14 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + +-printf "%s\n" "#define HAVE_CLZL 1" >>confdefs.h ++printf '%s\n' "#define HAVE_CLZL 1" >>confdefs.h + + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -8812,12 +9034,12 @@ esac + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin_ctzl" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking __builtin_ctzl" >&5 + printf %s "checking __builtin_ctzl... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -8845,14 +9067,14 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + +-printf "%s\n" "#define HAVE_CTZL 1" >>confdefs.h ++printf '%s\n' "#define HAVE_CTZL 1" >>confdefs.h + + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -8861,20 +9083,12 @@ esac + fi + + +- +-case $use in +-# sh4*) ;; #FIXME, these exceptions needed as of gcc 4.7 +-# hppa*) ;; #FIXME +-# powerpc*) ;; #FIXME +-# alpha*) ;; #FIXME +- ia64*) ;; #FIXME +- *) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking __builtin___clear_cache" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking __builtin___clear_cache" >&5 + printf %s "checking __builtin___clear_cache... " >&6; } +- if test "$cross_compiling" = yes ++if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -8885,8 +9099,8 @@ int + main (void) + { + +- char v[1<<12]; +- __builtin___clear_cache(v,v+sizeof(v)); ++ char v[1<<12]; ++ __builtin___clear_cache(v,v+sizeof(v)); + + ; + return 0; +@@ -8895,21 +9109,20 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define HAVE_BUILTIN_CLEAR_CACHE 1" >>confdefs.h ++printf '%s\n' "#define HAVE_BUILTIN_CLEAR_CACHE 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; + esac + fi +-;; +-esac ++ + + #AC_CONFIG_SUBDIRS($MY_SUBDIRS) + +@@ -8921,7 +9134,7 @@ esac + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 + printf %s "checking size of size_t... " >&6; } + if test ${ac_cv_sizeof_size_t+y} + then : +@@ -8931,32 +9144,25 @@ else case e in #( + then : + + else case e in #( +- e) if test "$ac_cv_type_size_t" = yes; then +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +-as_fn_error 77 "cannot compute sizeof (size_t) +-See 'config.log' for more details" "$LINENO" 5; } +- else +- ac_cv_sizeof_size_t=0 +- fi ;; ++ e) ac_cv_sizeof_size_t=0 ;; + esac + fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +-printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 ++printf '%s\n' "$ac_cv_sizeof_size_t" >&6; } + + + +-printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h ++printf '%s\n' "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h + + + # The cast to long int works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 + printf %s "checking size of long... " >&6; } + if test ${ac_cv_sizeof_long+y} + then : +@@ -8966,32 +9172,25 @@ else case e in #( + then : + + else case e in #( +- e) if test "$ac_cv_type_long" = yes; then +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +-as_fn_error 77 "cannot compute sizeof (long) +-See 'config.log' for more details" "$LINENO" 5; } +- else +- ac_cv_sizeof_long=0 +- fi ;; ++ e) ac_cv_sizeof_long=0 ;; + esac + fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +-printf "%s\n" "$ac_cv_sizeof_long" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 ++printf '%s\n' "$ac_cv_sizeof_long" >&6; } + + + +-printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h ++printf '%s\n' "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h + + + # The cast to long int works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 + printf %s "checking size of short... " >&6; } + if test ${ac_cv_sizeof_short+y} + then : +@@ -9001,32 +9200,25 @@ else case e in #( + then : + + else case e in #( +- e) if test "$ac_cv_type_short" = yes; then +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +-as_fn_error 77 "cannot compute sizeof (short) +-See 'config.log' for more details" "$LINENO" 5; } +- else +- ac_cv_sizeof_short=0 +- fi ;; ++ e) ac_cv_sizeof_short=0 ;; + esac + fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +-printf "%s\n" "$ac_cv_sizeof_short" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 ++printf '%s\n' "$ac_cv_sizeof_short" >&6; } + + + +-printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h ++printf '%s\n' "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h + + + # The cast to long int works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 + printf %s "checking size of int... " >&6; } + if test ${ac_cv_sizeof_int+y} + then : +@@ -9036,32 +9228,25 @@ else case e in #( + then : + + else case e in #( +- e) if test "$ac_cv_type_int" = yes; then +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +-as_fn_error 77 "cannot compute sizeof (int) +-See 'config.log' for more details" "$LINENO" 5; } +- else +- ac_cv_sizeof_int=0 +- fi ;; ++ e) ac_cv_sizeof_int=0 ;; + esac + fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +-printf "%s\n" "$ac_cv_sizeof_int" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 ++printf '%s\n' "$ac_cv_sizeof_int" >&6; } + + + +-printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h ++printf '%s\n' "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h + + + # The cast to long int works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 + printf %s "checking size of char... " >&6; } + if test ${ac_cv_sizeof_char+y} + then : +@@ -9071,25 +9256,18 @@ else case e in #( + then : + + else case e in #( +- e) if test "$ac_cv_type_char" = yes; then +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +-as_fn_error 77 "cannot compute sizeof (char) +-See 'config.log' for more details" "$LINENO" 5; } +- else +- ac_cv_sizeof_char=0 +- fi ;; ++ e) ac_cv_sizeof_char=0 ;; + esac + fi + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 +-printf "%s\n" "$ac_cv_sizeof_char" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 ++printf '%s\n' "$ac_cv_sizeof_char" >&6; } + + + +-printf "%s\n" "#define SIZEOF_CHAR $ac_cv_sizeof_char" >>confdefs.h ++printf '%s\n' "#define SIZEOF_CHAR $ac_cv_sizeof_char" >>confdefs.h + + + +@@ -9120,9 +9298,9 @@ do : + ac_fn_c_check_header_compile "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" + if test "x$ac_cv_header_math_h" = xyes + then : +- printf "%s\n" "#define HAVE_MATH_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_MATH_H 1" >>confdefs.h + +-printf "%s\n" "#define HAVE_MATH_H 1" >>confdefs.h ++printf '%s\n' "#define HAVE_MATH_H 1" >>confdefs.h + + fi + +@@ -9132,9 +9310,9 @@ do : + ac_fn_c_check_header_compile "$LINENO" "complex.h" "ac_cv_header_complex_h" "$ac_includes_default" + if test "x$ac_cv_header_complex_h" = xyes + then : +- printf "%s\n" "#define HAVE_COMPLEX_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_COMPLEX_H 1" >>confdefs.h + +-printf "%s\n" "#define HAVE_COMPLEX_H 1" >>confdefs.h ++printf '%s\n' "#define HAVE_COMPLEX_H 1" >>confdefs.h + + fi + +@@ -9142,12 +9320,12 @@ done + + #### Memory areas and alignment + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for byte order" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for byte order" >&5 + printf %s "checking for byte order... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9170,13 +9348,13 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: little" >&5 +-printf "%s\n" "little" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: little" >&5 ++printf '%s\n' "little" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: big" >&5 +-printf "%s\n" "big" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: big" >&5 ++printf '%s\n' "big" >&6; } + +-printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h ++printf '%s\n' "#define WORDS_BIGENDIAN 1" >>confdefs.h + ;; + esac + fi +@@ -9188,12 +9366,12 @@ fi + + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for word order" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for word order" >&5 + printf %s "checking for word order... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9215,13 +9393,13 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: little" >&5 +-printf "%s\n" "little" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: little" >&5 ++printf '%s\n' "little" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: big" >&5 +-printf "%s\n" "big" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: big" >&5 ++printf '%s\n' "big" >&6; } + +-printf "%s\n" "#define DOUBLE_BIGENDIAN 1" >>confdefs.h ++printf '%s\n' "#define DOUBLE_BIGENDIAN 1" >>confdefs.h + ;; + esac + fi +@@ -9239,7 +9417,7 @@ case $use in + *) min_pagewidth=12;; + esac + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hugepagewidth" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for hugepagewidth" >&5 + printf %s "checking for hugepagewidth... " >&6; } + j="" + if test -e /proc/meminfo ; then +@@ -9247,11 +9425,11 @@ if test -e /proc/meminfo ; then + if (j==$2) {if (i>11) i=11;printf("%d\n",i+10)}}' /proc/meminfo` + fi + if test "$j" != "" ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $j" >&5 +-printf "%s\n" "$j" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $j" >&5 ++printf '%s\n' "$j" >&6; } + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +-printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC options to detect undeclared functions" >&5 ++printf %s "checking for $CC options to detect undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} + then : + printf %s "(cached) " >&6 +@@ -9319,12 +9497,12 @@ rm -f core conftest.err conftest.$ac_obj + ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +-printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 ++printf '%s\n' "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot make $CC report undeclared builtins + See 'config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : +@@ -9333,6 +9511,49 @@ See 'config.log' for more details" "$LIN + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; + esac + ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC options to ignore future-version functions" >&5 ++printf %s "checking for $CC options to ignore future-version functions... " >&6; } ++if test ${ac_cv_c_future_darwin_options+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ac_compile_saved="$ac_compile" ++ ac_compile="$ac_compile -Werror=unguarded-availability-new" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#if ! (defined __APPLE__ && defined __MACH__) ++ #error "-Werror=unguarded-availability-new not needed here" ++ #endif ++ ++int ++main (void) ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO" ++then : ++ ac_cv_c_future_darwin_options='-Werror=unguarded-availability-new' ++else case e in #( ++ e) ac_cv_c_future_darwin_options='none needed' ;; ++esac ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ++ ac_compile="$ac_compile_saved" ++ ;; ++esac ++fi ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_future_darwin_options" >&5 ++printf '%s\n' "$ac_cv_c_future_darwin_options" >&6; } ++ case $ac_cv_c_future_darwin_options in #( ++ 'none needed') : ++ ac_c_future_darwin_options='' ;; #( ++ *) : ++ ac_c_future_darwin_options=$ac_cv_c_future_darwin_options ;; ++esac ++ + ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" + if test "x$ac_cv_header_sys_mman_h" = xyes + then : +@@ -9340,15 +9561,15 @@ then : + if test "x$ac_cv_func_madvise" = xyes + then : + ac_fn_check_decl "$LINENO" "MADV_HUGEPAGE" "ac_cv_have_decl_MADV_HUGEPAGE" "#include +-" "$ac_c_undeclared_builtin_options" "CFLAGS" ++" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS" + if test "x$ac_cv_have_decl_MADV_HUGEPAGE" = xyes + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking madvise works" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking madvise works" >&5 + printf %s "checking madvise works... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9375,15 +9596,15 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + +-printf "%s\n" "#define HAVE_MADVISE_HUGEPAGE 1" >>confdefs.h ++printf '%s\n' "#define HAVE_MADVISE_HUGEPAGE 1" >>confdefs.h + + if test $min_pagewidth -lt $j ; then min_pagewidth=$j ; fi + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -9398,8 +9619,8 @@ fi + fi + + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-printf "%s\n" "not found" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5 ++printf '%s\n' "not found" >&6; } + fi + + # Check whether --enable-min_pagewidth was given. +@@ -9409,12 +9630,12 @@ then : + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pagewidth" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for pagewidth" >&5 + printf %s "checking for pagewidth... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9453,19 +9674,19 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PAGEWIDTH" >&5 +-printf "%s\n" "$PAGEWIDTH" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PAGEWIDTH" >&5 ++printf '%s\n' "$PAGEWIDTH" >&6; } + +-printf "%s\n" "#define PAGEWIDTH $PAGEWIDTH" >>confdefs.h ++printf '%s\n' "#define PAGEWIDTH $PAGEWIDTH" >>confdefs.h + + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for required object alignment" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for required object alignment" >&5 + printf %s "checking for required object alignment... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9503,10 +9724,10 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + obj_align=`cat conftest1` +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5 +-printf "%s\n" "$obj_align" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5 ++printf '%s\n' "$obj_align" >&6; } + +-printf "%s\n" "#define OBJ_ALIGNMENT $obj_align" >>confdefs.h ++printf '%s\n' "#define OBJ_ALIGNMENT $obj_align" >>confdefs.h + + else case e in #( + e) as_fn_error $? "Cannot find object alignent" "$LINENO" 5 ;; +@@ -9518,12 +9739,12 @@ esac + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C extension variable alignment" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C extension variable alignment" >&5 + printf %s "checking for C extension variable alignment... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9552,18 +9773,18 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5 +-printf "%s\n" "$obj_align" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $obj_align" >&5 ++printf '%s\n' "$obj_align" >&6; } + +-printf "%s\n" "#define OBJ_ALIGN $obj_align" >>confdefs.h ++printf '%s\n' "#define OBJ_ALIGN $obj_align" >>confdefs.h + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C extension noreturn function attribute" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C extension noreturn function attribute" >&5 + printf %s "checking for C extension noreturn function attribute... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9592,13 +9813,13 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $no_return" >&5 +-printf "%s\n" "$no_return" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $no_return" >&5 ++printf '%s\n' "$no_return" >&6; } + +-printf "%s\n" "#define NO_RETURN $no_return" >>confdefs.h ++printf '%s\n' "#define NO_RETURN $no_return" >>confdefs.h + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking sizeof struct contblock" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking sizeof struct contblock" >&5 + printf %s "checking sizeof struct contblock... " >&6; } + + if test "$cross_compiling" = yes +@@ -9644,18 +9865,18 @@ esac + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sizeof_contblock" >&5 +-printf "%s\n" "$sizeof_contblock" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $sizeof_contblock" >&5 ++printf '%s\n' "$sizeof_contblock" >&6; } + +-printf "%s\n" "#define SIZEOF_CONTBLOCK $sizeof_contblock" >>confdefs.h ++printf '%s\n' "#define SIZEOF_CONTBLOCK $sizeof_contblock" >>confdefs.h + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CSTACK_DIRECTION" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking CSTACK_DIRECTION" >&5 + printf %s "checking CSTACK_DIRECTION... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9685,18 +9906,18 @@ esac + fi + + +-printf "%s\n" "#define CSTACK_DIRECTION $cstack_direction" >>confdefs.h ++printf '%s\n' "#define CSTACK_DIRECTION $cstack_direction" >>confdefs.h + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_direction" >&5 +-printf "%s\n" "$cstack_direction" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_direction" >&5 ++printf '%s\n' "$cstack_direction" >&6; } + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking finding CSTACK_ALIGNMENT" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking finding CSTACK_ALIGNMENT" >&5 + printf %s "checking finding CSTACK_ALIGNMENT... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9732,19 +9953,19 @@ esac + fi + + +-printf "%s\n" "#define CSTACK_ALIGNMENT $cstack_alignment" >>confdefs.h ++printf '%s\n' "#define CSTACK_ALIGNMENT $cstack_alignment" >>confdefs.h + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_alignment" >&5 +-printf "%s\n" "$cstack_alignment" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_alignment" >&5 ++printf '%s\n' "$cstack_alignment" >&6; } + + if test $cstack_direction -eq 1 ; then + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5 + printf %s "checking CSTACK_TOP... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9783,15 +10004,15 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 +-printf "%s\n" "$cstack_top" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 ++printf '%s\n' "$cstack_top" >&6; } + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5 + printf %s "checking relocated CSTACK_TOP... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9833,17 +10054,17 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 +-printf "%s\n" "$cstack_top" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 ++printf '%s\n' "$cstack_top" >&6; } + + else + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking CSTACK_TOP" >&5 + printf %s "checking CSTACK_TOP... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9879,15 +10100,15 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 +-printf "%s\n" "$cstack_top" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 ++printf '%s\n' "$cstack_top" >&6; } + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking relocated CSTACK_TOP" >&5 + printf %s "checking relocated CSTACK_TOP... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9927,17 +10148,17 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 +-printf "%s\n" "$cstack_top" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_top" >&5 ++printf '%s\n' "$cstack_top" >&6; } + + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking cstack bits" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking cstack bits" >&5 + printf %s "checking cstack bits... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -9979,16 +10200,16 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cstack_bits" >&5 +-printf "%s\n" "$cstack_bits" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cstack_bits" >&5 ++printf '%s\n' "$cstack_bits" >&6; } + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking NEG_CSTACK_ADDRESS" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking NEG_CSTACK_ADDRESS" >&5 + printf %s "checking NEG_CSTACK_ADDRESS... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10010,12 +10231,12 @@ else case e in #( + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + neg_cstack_address=1 + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + neg_cstack_address=0 ;; + esac + fi +@@ -10043,7 +10264,7 @@ esac + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking finding default linker script" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking finding default linker script" >&5 + printf %s "checking finding default linker script... " >&6; } + if ! test -d unixport ; then mkdir unixport ; fi + touch unixport/gcl.script +@@ -10053,27 +10274,29 @@ $CC $LDFLAGS -Wl,--verbose foo.c -o foo + rm -rf foo.c foo + + if test "`cat gcl.script | wc -l`" != "0" ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: got it" >&5 +-printf "%s\n" "got it" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: got it" >&5 ++printf '%s\n' "got it" >&6; } + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking output_arch" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking output_arch" >&5 + printf %s "checking output_arch... " >&6; } + output_arch=`cat gcl.script |grep OUTPUT_ARCH|head -n 1|sed 's,.*(\(.*\)).*,\1:,1'|cut -f1 -d:|tr '-' '_'`; + if test "$output_arch" != "" ; then + +-printf "%s\n" "#define OUTPUT_ARCH bfd_arch_${output_arch}" >>confdefs.h ++cat >>confdefs.h <<_ACEOF ++#define OUTPUT_ARCH bfd_arch_${output_arch} ++_ACEOF + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: bfd_arch_${output_arch}" >&5 +-printf "%s\n" "bfd_arch_${output_arch}" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: bfd_arch_${output_arch}" >&5 ++printf '%s\n' "bfd_arch_${output_arch}" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-printf "%s\n" "not found" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5 ++printf '%s\n' "not found" >&6; } + fi + + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying to adjust text start" >&5 +-printf "%s\n" "$as_me: trying to adjust text start" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: trying to adjust text start" >&5 ++printf '%s\n' "$as_me: trying to adjust text start" >&6;} + cp gcl.script gcl.script.def + + n=-1; +@@ -10101,16 +10324,16 @@ printf "%s\n" "$as_me: trying to adjust + n=`$AWK 'END {print n+1}' n=$n &5 +-printf "%s\n" "$as_me: min log text start $min" >&6;} +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: max log text start $max" >&5 +-printf "%s\n" "$as_me: max log text start $max" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: min log text start $min" >&5 ++printf '%s\n' "$as_me: min log text start $min" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: max log text start $max" >&5 ++printf '%s\n' "$as_me: max log text start $max" >&6;} + + if test $neg_cstack_address -eq 1 ; then #FIXME test this + if test $cstack_bits -lt $max ; then + max=$cstack_bits; +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: max log text start reduced to $max considering c stack address" >&5 +-printf "%s\n" "$as_me: max log text start reduced to $max considering c stack address" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: max log text start reduced to $max considering c stack address" >&5 ++printf '%s\n' "$as_me: max log text start reduced to $max considering c stack address" >&6;} + fi + fi + +@@ -10123,8 +10346,8 @@ printf "%s\n" "$as_me: max log text star + fi + if test $min -lt $q && test $q -lt $max && test $q -lt 30; then + min=$q +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: min log text start increased to $min over c stack address" >&5 +-printf "%s\n" "$as_me: min log text start increased to $min over c stack address" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: min log text start increased to $min over c stack address" >&5 ++printf '%s\n' "$as_me: min log text start increased to $min over c stack address" >&6;} + fi + fi + +@@ -10135,50 +10358,50 @@ printf "%s\n" "$as_me: min log text star + if test $max -ge $enable_fastimmfix && test "$enable_immfix" != "no" ; then + j=`$AWK 'END {for (i=j=0;j<=n;j++) i=i ? i*2 : 1;printf("%x\n",3*i)}' n=$max &5 +-printf "%s\n" "$as_me: raising log text to 0x$j for a $max bit wide low immfix table" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: raising log text to 0x$j for a $max bit wide low immfix table" >&5 ++printf '%s\n' "$as_me: raising log text to 0x$j for a $max bit wide low immfix table" >&6;} + else + j=`$AWK 'END {for (i=j=0;j<=n;j++) i=i ? i*2 : 1;printf("%x\n",3*i)}' n=$min &5 +-printf "%s\n" "$as_me: lowering log text to 0x$j to maximize data area" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: lowering log text to 0x$j to maximize data area" >&5 ++printf '%s\n' "$as_me: lowering log text to 0x$j to maximize data area" >&6;} + fi + fi + + if test "$low_shft" != "" ; then + +-printf "%s\n" "#define LOW_SHFT $low_shft" >>confdefs.h ++printf '%s\n' "#define LOW_SHFT $low_shft" >>confdefs.h + + +-printf "%s\n" "#define OBJNULL (object)0x$j" >>confdefs.h ++printf '%s\n' "#define OBJNULL (object)0x$j" >>confdefs.h + + else + +-printf "%s\n" "#define OBJNULL NULL" >>confdefs.h ++printf '%s\n' "#define OBJNULL NULL" >>confdefs.h + + fi + + # echo $j; +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking our linker script" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking our linker script" >&5 + printf %s "checking our linker script... " >&6; } + if test "$j" != "-1" ; then + cat gcl.script.def | $AWK '/SEGMENT_START/ {gsub("0x[0-9]*","0x" j,$0);} {print}' j=$j >gcl.script +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +-printf "%s\n" "done" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: done" >&5 ++printf '%s\n' "done" >&6; } + rm -f gcl.script.def + assert_arg_to_ldflags -Wl,-T,gcl.script + cp gcl.script unixport + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none found or not needed" >&5 +-printf "%s\n" "none found or not needed" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none found or not needed" >&5 ++printf '%s\n' "none found or not needed" >&6; } + rm -f gcl.script gcl.script.def + fi + rm -rf foo.c foo + else + +-printf "%s\n" "#define OBJNULL NULL" >>confdefs.h ++printf '%s\n' "#define OBJNULL NULL" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-printf "%s\n" "not found" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5 ++printf '%s\n' "not found" >&6; } + fi + + #else +@@ -10187,17 +10410,17 @@ fi + + #fi + +-printf "%s\n" "#define CSSIZE $enable_cssize" >>confdefs.h ++printf '%s\n' "#define CSSIZE $enable_cssize" >>confdefs.h + + + mem_top=0 + mem_range=0 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking mem top" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking mem top" >&5 + printf %s "checking mem top... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10243,16 +10466,16 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $mem_top" >&5 +-printf "%s\n" "$mem_top" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $mem_top" >&5 ++printf '%s\n' "$mem_top" >&6; } + + if test "$mem_top" != "0x0" ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking finding upper mem half range" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking finding upper mem half range" >&5 + printf %s "checking finding upper mem half range... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10289,29 +10512,33 @@ rm -f core *.core core.conftest.* gmon.o + esac + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $mem_range" >&5 +-printf "%s\n" "$mem_range" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $mem_range" >&5 ++printf '%s\n' "$mem_range" >&6; } + fi + + if test "$enable_immfix" != "no" ; then + if test "$mem_top" != "0x0" ; then + if test "$mem_range" != "0x0" ; then + +-printf "%s\n" "#define IM_FIX_BASE ${mem_top}UL" >>confdefs.h ++cat >>confdefs.h <<_ACEOF ++#define IM_FIX_BASE ${mem_top}UL ++_ACEOF + + +-printf "%s\n" "#define IM_FIX_LIM ${mem_range}UL" >>confdefs.h ++cat >>confdefs.h <<_ACEOF ++#define IM_FIX_LIM ${mem_range}UL ++_ACEOF + + fi + fi + fi + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking sizeof long long int" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking sizeof long long int" >&5 + printf %s "checking sizeof long long int... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10334,12 +10561,12 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define HAVE_LONG_LONG 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++printf '%s\n' "#define HAVE_LONG_LONG 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -10355,13 +10582,13 @@ do : + ac_fn_c_check_header_compile "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default" + if test "x$ac_cv_header_dirent_h" = xyes + then : +- printf "%s\n" "#define HAVE_DIRENT_H 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for d_type" >&5 ++ printf '%s\n' "#define HAVE_DIRENT_H 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for d_type" >&5 + printf %s "checking for d_type... " >&6; } + if test "$cross_compiling" = yes + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -10384,13 +10611,13 @@ main (void) + _ACEOF + if ac_fn_c_try_run "$LINENO" + then : +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } +-printf "%s\n" "#define HAVE_D_TYPE 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } ++printf '%s\n' "#define HAVE_D_TYPE 1" >>confdefs.h + + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -10407,21 +10634,21 @@ done + ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" + if test "x$ac_cv_func_getcwd" = xyes + then : +- printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_GETCWD 1" >>confdefs.h + + fi + + ac_fn_c_check_func "$LINENO" "getwd" "ac_cv_func_getwd" + if test "x$ac_cv_func_getwd" = xyes + then : +- printf "%s\n" "#define HAVE_GETWD 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_GETWD 1" >>confdefs.h + + fi + + ac_fn_c_check_func "$LINENO" "rename" "ac_cv_func_rename" + if test "x$ac_cv_func_rename" = xyes + then : +- printf "%s\n" "#define HAVE_RENAME 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_RENAME 1" >>confdefs.h + + fi + +@@ -10431,7 +10658,7 @@ then : + + else case e in #( + e) +-printf "%s\n" "#define NO_UNAME 1" >>confdefs.h ++printf '%s\n' "#define NO_UNAME 1" >>confdefs.h + ;; + esac + fi +@@ -10443,7 +10670,7 @@ do : + ac_fn_c_check_func "$LINENO" "readlinkat" "ac_cv_func_readlinkat" + if test "x$ac_cv_func_readlinkat" = xyes + then : +- printf "%s\n" "#define HAVE_READLINKAT 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_READLINKAT 1" >>confdefs.h + + else case e in #( + e) as_fn_error $? "must have readlinkat" "$LINENO" 5 ;; +@@ -10455,7 +10682,7 @@ done + ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default" + if test "x$ac_cv_header_sys_ioctl_h" = xyes + then : +- printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h + + fi + +@@ -10464,13 +10691,13 @@ fi + ac_fn_c_check_header_compile "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default" + if test "x$ac_cv_header_elf_h" = xyes + then : +- printf "%s\n" "#define HAVE_ELF_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_ELF_H 1" >>confdefs.h + + fi + ac_fn_c_check_header_compile "$LINENO" "elf_abi.h" "ac_cv_header_elf_abi_h" "$ac_includes_default" + if test "x$ac_cv_header_elf_abi_h" = xyes + then : +- printf "%s\n" "#define HAVE_ELF_ABI_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_ELF_ABI_H 1" >>confdefs.h + + fi + +@@ -10478,14 +10705,14 @@ fi + ac_fn_c_check_header_compile "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default" + if test "x$ac_cv_header_sys_sockio_h" = xyes + then : +- printf "%s\n" "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h + + fi + + + + if test "$use" != "mingw" ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 + printf %s "checking for sin in -lm... " >&6; } + if test ${ac_cv_lib_m_sin+y} + then : +@@ -10526,8 +10753,8 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 +-printf "%s\n" "$ac_cv_lib_m_sin" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 ++printf '%s\n' "$ac_cv_lib_m_sin" >&6; } + if test "x$ac_cv_lib_m_sin" = xyes + then : + LIBS="${LIBS} -lm" +@@ -10537,7 +10764,7 @@ esac + fi + + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lmingwex" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lmingwex" >&5 + printf %s "checking for main in -lmingwex... " >&6; } + if test ${ac_cv_lib_mingwex_main+y} + then : +@@ -10569,8 +10796,8 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mingwex_main" >&5 +-printf "%s\n" "$ac_cv_lib_mingwex_main" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mingwex_main" >&5 ++printf '%s\n' "$ac_cv_lib_mingwex_main" >&6; } + if test "x$ac_cv_lib_mingwex_main" = xyes + then : + LIBS="${LIBS} -lmingwex" +@@ -10589,9 +10816,9 @@ do : + ac_fn_c_check_header_compile "$LINENO" "values.h" "ac_cv_header_values_h" "$ac_includes_default" + if test "x$ac_cv_header_values_h" = xyes + then : +- printf "%s\n" "#define HAVE_VALUES_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_VALUES_H 1" >>confdefs.h + +-printf "%s\n" "#define HAVE_VALUES_H 1" >>confdefs.h ++printf '%s\n' "#define HAVE_VALUES_H 1" >>confdefs.h + + fi + +@@ -10605,9 +10832,9 @@ do : + ac_fn_c_check_header_compile "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default" + if test "x$ac_cv_header_float_h" = xyes + then : +- printf "%s\n" "#define HAVE_FLOAT_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_FLOAT_H 1" >>confdefs.h + +-printf "%s\n" "#define HAVE_FLOAT_H 1" >>confdefs.h ++printf '%s\n' "#define HAVE_FLOAT_H 1" >>confdefs.h + + fi + +@@ -10618,12 +10845,12 @@ done + # a more comprehensive later, i.e. checking that the fpclass + # test makes sense. CM + # +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isnormal" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for isnormal" >&5 + printf %s "checking for isnormal... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10647,16 +10874,16 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define HAVE_ISNORMAL 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++printf '%s\n' "#define HAVE_ISNORMAL 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fpclass of ieeefp.h" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for fpclass of ieeefp.h" >&5 + printf %s "checking for fpclass of ieeefp.h... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10679,12 +10906,12 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define HAVE_IEEEFP 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++printf '%s\n' "#define HAVE_IEEEFP 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ +@@ -10700,12 +10927,12 @@ esac + fi + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isfinite" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for isfinite" >&5 + printf %s "checking for isfinite... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10729,16 +10956,16 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define HAVE_ISFINITE 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++printf '%s\n' "#define HAVE_ISFINITE 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for finite()" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for finite()" >&5 + printf %s "checking for finite()... " >&6; } + if test "$cross_compiling" = yes + then : +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "cannot run test program while cross compiling + See 'config.log' for more details" "$LINENO" 5; } + else case e in #( +@@ -10762,9 +10989,9 @@ _ACEOF + if ac_fn_c_try_run "$LINENO" + then : + +-printf "%s\n" "#define HAVE_FINITE 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++printf '%s\n' "#define HAVE_FINITE 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( + e) as_fn_error $? "no" "$LINENO" 5 ;; + esac +@@ -10799,7 +11026,7 @@ fi + # To get around this problem, check for both libraries together + # if -lsocket doesn't work by itself. + #-------------------------------------------------------------------- +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockets" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sockets" >&5 + printf %s "checking for sockets... " >&6; } + tcl_checkBoth=0 + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +@@ -10812,7 +11039,7 @@ esac + fi + + if test "$tcl_checkSocket" = 1; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5 + printf %s "checking for main in -lsocket... " >&6; } + if test ${ac_cv_lib_socket_main+y} + then : +@@ -10844,8 +11071,8 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5 +-printf "%s\n" "$ac_cv_lib_socket_main" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5 ++printf '%s\n' "$ac_cv_lib_socket_main" >&6; } + if test "x$ac_cv_lib_socket_main" = xyes + then : + TLIBS="$TLIBS -lsocket" +@@ -10875,7 +11102,7 @@ if test "x$ac_cv_func_gethostbyname" = x + then : + + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lnsl" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for main in -lnsl" >&5 + printf %s "checking for main in -lnsl... " >&6; } + if test ${ac_cv_lib_nsl_main+y} + then : +@@ -10907,8 +11134,8 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_main" >&5 +-printf "%s\n" "$ac_cv_lib_nsl_main" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_main" >&5 ++printf '%s\n' "$ac_cv_lib_nsl_main" >&6; } + if test "x$ac_cv_lib_nsl_main" = xyes + then : + TLIBS="$TLIBS -lnsl" +@@ -10938,8 +11165,8 @@ do : + " + if test "x$ac_cv_header_readline_readline_h" = xyes + then : +- printf "%s\n" "#define HAVE_READLINE_READLINE_H 1" >>confdefs.h +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_initialize in -lreadline" >&5 ++ printf '%s\n' "#define HAVE_READLINE_READLINE_H 1" >>confdefs.h ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_initialize in -lreadline" >&5 + printf %s "checking for rl_initialize in -lreadline... " >&6; } + if test ${ac_cv_lib_readline_rl_initialize+y} + then : +@@ -10980,14 +11207,14 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_initialize" >&5 +-printf "%s\n" "$ac_cv_lib_readline_rl_initialize" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_initialize" >&5 ++printf '%s\n' "$ac_cv_lib_readline_rl_initialize" >&6; } + if test "x$ac_cv_lib_readline_rl_initialize" = xyes + then : + +-printf "%s\n" "#define USE_READLINE 1" >>confdefs.h ++printf '%s\n' "#define USE_READLINE 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for el_getc in -lreadline" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for el_getc in -lreadline" >&5 + printf %s "checking for el_getc in -lreadline... " >&6; } + if test ${ac_cv_lib_readline_el_getc+y} + then : +@@ -11028,17 +11255,17 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_el_getc" >&5 +-printf "%s\n" "$ac_cv_lib_readline_el_getc" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_el_getc" >&5 ++printf '%s\n' "$ac_cv_lib_readline_el_getc" >&6; } + if test "x$ac_cv_lib_readline_el_getc" = xyes + then : + +-printf "%s\n" "#define READLINE_IS_EDITLINE 1" >>confdefs.h ++printf '%s\n' "#define READLINE_IS_EDITLINE 1" >>confdefs.h + + fi + + # These tests discover differences between readline 4.1 and 4.3 +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5 + printf %s "checking for rl_completion_matches in -lreadline... " >&6; } + if test ${ac_cv_lib_readline_rl_completion_matches+y} + then : +@@ -11079,19 +11306,19 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5 +-printf "%s\n" "$ac_cv_lib_readline_rl_completion_matches" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5 ++printf '%s\n' "$ac_cv_lib_readline_rl_completion_matches" >&6; } + if test "x$ac_cv_lib_readline_rl_completion_matches" = xyes + then : + +-printf "%s\n" "#define HAVE_DECL_RL_COMPLETION_MATCHES 1" >>confdefs.h ++printf '%s\n' "#define HAVE_DECL_RL_COMPLETION_MATCHES 1" >>confdefs.h + + +-printf "%s\n" "#define HAVE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h ++printf '%s\n' "#define HAVE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h + + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION" >&5 + printf %s "checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11111,14 +11338,14 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION 1" >>confdefs.h ++printf '%s\n' "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_FUNCTION 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T" >&5 + printf %s "checking RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11138,13 +11365,13 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h ++printf '%s\n' "#define RL_COMPLETION_ENTRY_FUNCTION_TYPE_RL_COMPENTRY_FUNC_T 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + as_fn_error $? "Unknown rl_completion_entry_function return type" "$LINENO" 5 ;; + esac + fi +@@ -11153,7 +11380,7 @@ esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CHAR" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CHAR" >&5 + printf %s "checking RL_READLINE_NAME_TYPE_CHAR... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11173,14 +11400,14 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define RL_READLINE_NAME_TYPE_CHAR 1" >>confdefs.h ++printf '%s\n' "#define RL_READLINE_NAME_TYPE_CHAR 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CONST_CHAR" >&5 ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking RL_READLINE_NAME_TYPE_CONST_CHAR" >&5 + printf %s "checking RL_READLINE_NAME_TYPE_CONST_CHAR... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11200,13 +11427,13 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define RL_READLINE_NAME_TYPE_CONST_CHAR 1" >>confdefs.h ++printf '%s\n' "#define RL_READLINE_NAME_TYPE_CONST_CHAR 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + as_fn_error $? "Unknown rl_readline_name return type" "$LINENO" 5 ;; + esac + fi +@@ -11228,7 +11455,7 @@ fi + + # sockets + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking For network code for nsocket.c" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking For network code for nsocket.c" >&5 + printf %s "checking For network code for nsocket.c... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11265,20 +11492,20 @@ _ACEOF + if ac_fn_c_try_link "$LINENO" + then : + +-printf "%s\n" "#define HAVE_NSOCKET 1" >>confdefs.h ++printf '%s\n' "#define HAVE_NSOCKET 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for listen using fcntl" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for listen using fcntl" >&5 + printf %s "checking check for listen using fcntl... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11302,13 +11529,13 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define LISTEN_USE_FCNTL 1" >>confdefs.h ++printf '%s\n' "#define LISTEN_USE_FCNTL 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +@@ -11320,7 +11547,7 @@ then : + + else case e in #( + e) +-printf "%s\n" "#define NO_PROFILE 1" >>confdefs.h ++printf '%s\n' "#define NO_PROFILE 1" >>confdefs.h + ;; + esac + fi +@@ -11330,7 +11557,7 @@ ac_fn_c_check_func "$LINENO" "setenv" "a + if test "x$ac_cv_func_setenv" = xyes + then : + +-printf "%s\n" "#define HAVE_SETENV 1" >>confdefs.h ++printf '%s\n' "#define HAVE_SETENV 1" >>confdefs.h + + else case e in #( + e) no_setenv=1 ;; +@@ -11343,7 +11570,7 @@ if test "$no_setenv" = "1" ; then + if test "x$ac_cv_func_putenv" = xyes + then : + +-printf "%s\n" "#define HAVE_PUTENV 1" >>confdefs.h ++printf '%s\n' "#define HAVE_PUTENV 1" >>confdefs.h + + fi + +@@ -11354,45 +11581,45 @@ ac_fn_c_check_func "$LINENO" "_cleanup" + if test "x$ac_cv_func__cleanup" = xyes + then : + +-printf "%s\n" "#define USE_CLEANUP 1" >>confdefs.h ++printf '%s\n' "#define USE_CLEANUP 1" >>confdefs.h + + fi + + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5 + printf %s "checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... " >&6; } + + case $system in + OSF*) + +-printf "%s\n" "#define USE_FIONBIO 1" >>confdefs.h ++printf '%s\n' "#define USE_FIONBIO 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5 +-printf "%s\n" "FIONBIO" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5 ++printf '%s\n' "FIONBIO" >&6; } + ;; + SunOS-4*) + +-printf "%s\n" "#define USE_FIONBIO 1" >>confdefs.h ++printf '%s\n' "#define USE_FIONBIO 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5 +-printf "%s\n" "FIONBIO" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5 ++printf '%s\n' "FIONBIO" >&6; } + ;; + ULTRIX-4.*) + +-printf "%s\n" "#define USE_FIONBIO 1" >>confdefs.h ++printf '%s\n' "#define USE_FIONBIO 1" >>confdefs.h + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5 +-printf "%s\n" "FIONBIO" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: FIONBIO" >&5 ++printf '%s\n' "FIONBIO" >&6; } + ;; + *) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: O_NONBLOCK" >&5 +-printf "%s\n" "O_NONBLOCK" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: O_NONBLOCK" >&5 ++printf '%s\n' "O_NONBLOCK" >&6; } + ;; + esac + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for SV_ONSTACK" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for SV_ONSTACK" >&5 + printf %s "checking check for SV_ONSTACK... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11411,19 +11638,19 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define HAVE_SV_ONSTACK 1" >>confdefs.h ++printf '%s\n' "#define HAVE_SV_ONSTACK 1" >>confdefs.h + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for SIGSYS" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for SIGSYS" >&5 + printf %s "checking check for SIGSYS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11442,20 +11669,20 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define HAVE_SIGSYS 1" >>confdefs.h ++printf '%s\n' "#define HAVE_SIGSYS 1" >>confdefs.h + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking check for SIGEMT" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking check for SIGEMT" >&5 + printf %s "checking check for SIGEMT... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +@@ -11474,14 +11701,14 @@ _ACEOF + if ac_fn_c_try_compile "$LINENO" + then : + +-printf "%s\n" "#define HAVE_SIGEMT 1" >>confdefs.h ++printf '%s\n' "#define HAVE_SIGEMT 1" >>confdefs.h + + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-printf "%s\n" "yes" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } + else case e in #( +- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ;; ++ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +@@ -11489,14 +11716,14 @@ rm -f core conftest.err conftest.$ac_obj + ac_fn_c_check_func "$LINENO" "sigaltstack" "ac_cv_func_sigaltstack" + if test "x$ac_cv_func_sigaltstack" = xyes + then : +- printf "%s\n" "#define HAVE_SIGALTSTACK 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_SIGALTSTACK 1" >>confdefs.h + + fi + + ac_fn_c_check_func "$LINENO" "feenableexcept" "ac_cv_func_feenableexcept" + if test "x$ac_cv_func_feenableexcept" = xyes + then : +- printf "%s\n" "#define HAVE_FEENABLEEXCEPT 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_FEENABLEEXCEPT 1" >>confdefs.h + + fi + +@@ -11506,7 +11733,7 @@ do : + ac_fn_c_check_header_compile "$LINENO" "dis-asm.h" "ac_cv_header_dis_asm_h" "$ac_includes_default" + if test "x$ac_cv_header_dis_asm_h" = xyes + then : +- printf "%s\n" "#define HAVE_DIS_ASM_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DIS_ASM_H 1" >>confdefs.h + MLIBS=$LIBS + + # ac_fn_c_check_type LINENO TYPE VAR INCLUDES +@@ -11516,7 +11743,7 @@ then : + ac_fn_c_check_type () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + printf %s "checking for $2... " >&6; } + if eval test \${$3+y} + then : +@@ -11562,8 +11789,8 @@ rm -f core conftest.err conftest.$ac_obj + esac + fi + eval ac_res=\$$3 +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +-printf "%s\n" "$ac_res" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 ++printf '%s\n' "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + + } # ac_fn_c_check_type +@@ -11572,12 +11799,12 @@ ac_fn_c_check_type "$LINENO" "fprintf_st + if test "x$ac_cv_type_fprintf_styled_ftype" = xyes + then : + +-printf "%s\n" "#define HAVE_FPRINTF_STYLED_FTYPE 1" >>confdefs.h ++printf '%s\n' "#define HAVE_FPRINTF_STYLED_FTYPE 1" >>confdefs.h + + + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for init_disassemble_info in -lopcodes" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for init_disassemble_info in -lopcodes" >&5 + printf %s "checking for init_disassemble_info in -lopcodes... " >&6; } + if test ${ac_cv_lib_opcodes_init_disassemble_info+y} + then : +@@ -11618,17 +11845,17 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_opcodes_init_disassemble_info" >&5 +-printf "%s\n" "$ac_cv_lib_opcodes_init_disassemble_info" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_opcodes_init_disassemble_info" >&5 ++printf '%s\n' "$ac_cv_lib_opcodes_init_disassemble_info" >&6; } + if test "x$ac_cv_lib_opcodes_init_disassemble_info" = xyes + then : +- printf "%s\n" "#define HAVE_LIBOPCODES 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_LIBOPCODES 1" >>confdefs.h + + LIBS="-lopcodes $LIBS" + + fi + +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 + printf %s "checking for dlopen in -ldl... " >&6; } + if test ${ac_cv_lib_dl_dlopen+y} + then : +@@ -11669,8 +11896,8 @@ rm -f core conftest.err conftest.$ac_obj + LIBS=$ac_check_lib_save_LIBS ;; + esac + fi +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 ++printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; } + if test "x$ac_cv_lib_dl_dlopen" = xyes + then : + #opcodes changes too quickly to link directly +@@ -11680,7 +11907,7 @@ do : + ac_fn_c_check_func "$LINENO" "print_insn_i386" "ac_cv_func_print_insn_i386" + if test "x$ac_cv_func_print_insn_i386" = xyes + then : +- printf "%s\n" "#define HAVE_PRINT_INSN_I386 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_PRINT_INSN_I386 1" >>confdefs.h + LIBS="$MLIBS -ldl" + fi + +@@ -11717,7 +11944,7 @@ if test "$enable_tcltk" != "no" ; then + + # Extract the first word of "tclsh", so it can be a program name with args. + set dummy tclsh; ac_word=$2 +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + printf %s "checking for $ac_word... " >&6; } + if test ${ac_cv_prog_TCLSH+y} + then : +@@ -11738,7 +11965,7 @@ do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_TCLSH="tclsh" +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi + done +@@ -11751,11 +11978,11 @@ esac + fi + TCLSH=$ac_cv_prog_TCLSH + if test -n "$TCLSH"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TCLSH" >&5 +-printf "%s\n" "$TCLSH" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $TCLSH" >&5 ++printf '%s\n' "$TCLSH" >&6; } + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-printf "%s\n" "no" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } + fi + + +@@ -11827,11 +12054,11 @@ fi + + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tcl/tk" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tcl/tk" >&5 + printf %s "checking for tcl/tk... " >&6; } + if test -d "${TK_CONFIG_PREFIX}" ; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&5 +-printf "%s\n" "using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&5 ++printf '%s\n' "using TK_VERSION=${TK_VERSION} of ${TK_CONFIG_PREFIX}" >&6; } + + + +@@ -11843,8 +12070,8 @@ printf "%s\n" "using TK_VERSION=${TK_VER + ac_config_files="$ac_config_files gcl-tk/gcltksrv" + + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +-printf "%s\n" "not found" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5 ++printf '%s\n' "not found" >&6; } + fi + + +@@ -11857,11 +12084,11 @@ do : + ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" + if test "x$ac_cv_header_sys_mman_h" = xyes + then : +- printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_SYS_MMAN_H 1" >>confdefs.h + ac_fn_c_check_func "$LINENO" "mprotect" "ac_cv_func_mprotect" + if test "x$ac_cv_func_mprotect" = xyes + then : +- printf "%s\n" "#define HAVE_MPROTECT 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_MPROTECT 1" >>confdefs.h + + fi + +@@ -11871,7 +12098,7 @@ done + ac_fn_c_check_header_compile "$LINENO" "alloca.h" "ac_cv_header_alloca_h" "$ac_includes_default" + if test "x$ac_cv_header_alloca_h" = xyes + then : +- printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_ALLOCA_H 1" >>confdefs.h + + fi + +@@ -11951,44 +12178,7 @@ if test "$use" != "" ; then + + _ACEOF + +-# The following way of writing the cache mishandles newlines in values, +-# but we know of no workaround that is simple, portable, and efficient. +-# So, we kill variables containing newlines. +-# Ultrix sh set writes to stderr and can't be redirected directly, +-# and sets the high bit in the cache file unless we assign to the vars. +-( +- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do +- eval ac_val=\$$ac_var +- case $ac_val in #( +- *${as_nl}*) +- case $ac_var in #( +- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; +- esac +- case $ac_var in #( +- _ | IFS | as_nl) ;; #( +- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( +- *) { eval $ac_var=; unset $ac_var;} ;; +- esac ;; +- esac +- done +- +- (set) 2>&1 | +- case $as_nl`(ac_space=' '; set) 2>&1` in #( +- *${as_nl}ac_space=\ *) +- # 'set' does not quote correctly, so add quotes: double-quote +- # substitution turns \\\\ into \\, and sed turns \\ into \. +- sed -n \ +- "s/'/'\\\\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" +- ;; #( +- *) +- # 'set' quotes correctly as required by POSIX, so do not add quotes. +- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" +- ;; +- esac | +- sort +-) | ++ac_cache_dump | + sed ' + /^ac_cv_env_/b end + t clear +@@ -12000,8 +12190,8 @@ printf "%s\n" "$as_me: WARNING: cache va + if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +-printf "%s\n" "$as_me: updating cache $cache_file" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 ++printf '%s\n' "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else +@@ -12015,8 +12205,8 @@ printf "%s\n" "$as_me: updating cache $c + fi + fi + else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +-printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 ++printf '%s\n' "$as_me: not updating unwritable cache $cache_file" >&6;} + fi + fi + rm -f confcache +@@ -12033,7 +12223,7 @@ U= + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' +- ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` ++ ac_i=`printf '%s\n' "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" +@@ -12044,14 +12234,14 @@ LIBOBJS=$ac_libobjs + LTLIBOBJS=$ac_ltlibobjs + + +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 + printf %s "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +-printf "%s\n" "done" >&6; } ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: done" >&5 ++printf '%s\n' "done" >&6; } + case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +@@ -12102,13 +12292,21 @@ Usually this means the macro was only in + fi + + : "${CONFIG_STATUS=./config.status}" ++case $CONFIG_STATUS in #( ++ -*) : ++ CONFIG_STATUS=./$CONFIG_STATUS ;; #( ++ */*) : ++ ;; #( ++ *) : ++ CONFIG_STATUS=./$CONFIG_STATUS ;; ++esac ++ + ac_write_fail=0 +-ac_clean_files_save=$ac_clean_files +-ac_clean_files="$ac_clean_files $CONFIG_STATUS" +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +-printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} ++ac_clean_CONFIG_STATUS='"$CONFIG_STATUS"' ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 ++printf '%s\n' "$as_me: creating $CONFIG_STATUS" >&6;} + as_write_fail=0 +-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 ++cat >"$CONFIG_STATUS" <<_ASEOF || as_write_fail=1 + #! $SHELL + # Generated by $as_me. + # Run this file to recreate the current configuration. +@@ -12122,7 +12320,7 @@ ac_cs_silent=false + SHELL=\${CONFIG_SHELL-$SHELL} + export SHELL + _ASEOF +-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ASEOF || as_write_fail=1 + ## -------------------- ## + ## M4sh Initialization. ## + ## -------------------- ## +@@ -12134,7 +12332,7 @@ then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which +- # is contrary to our usage. Disable this feature. ++ # contradicts POSIX and common usage. Disable this. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST + else case e in #( +@@ -12221,7 +12419,7 @@ if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then +- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 ++ printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 + fi + +@@ -12237,9 +12435,9 @@ as_fn_error () + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack +- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 ++ printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi +- printf "%s\n" "$as_me: error: $2" >&2 ++ printf '%s\n' "$as_me: error: $2" >&2 + as_fn_exit $as_status + } # as_fn_error + +@@ -12334,7 +12532,7 @@ as_me=`$as_basename -- "$0" || + $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X/"$0" | ++printf '%s\n' X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q +@@ -12356,29 +12554,6 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTE + as_cr_digits='0123456789' + as_cr_alnum=$as_cr_Letters$as_cr_digits + +- +-# Determine whether it's possible to make 'echo' print without a newline. +-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +-# for compatibility with existing Makefiles. +-ECHO_C= ECHO_N= ECHO_T= +-case `echo -n x` in #((((( +--n*) +- case `echo 'xy\c'` in +- *c*) ECHO_T=' ';; # ECHO_T is single tab character. +- xy) ECHO_C='\c';; +- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null +- ECHO_T=' ';; +- esac;; +-*) +- ECHO_N='-n';; +-esac +- +-# For backward compatibility with old third-party macros, we provide +-# the shell variables $as_echo and $as_echo_n. New code should use +-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +-as_echo='printf %s\n' +-as_echo_n='printf %s' +- + rm -f conf$$ conf$$.exe conf$$.file + if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +@@ -12420,7 +12595,7 @@ as_fn_mkdir_p () + as_dirs= + while :; do + case $as_dir in #( +- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( ++ *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" +@@ -12429,7 +12604,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X"$as_dir" | ++printf '%s\n' X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q +@@ -12482,19 +12657,19 @@ as_tr_sh="eval sed '$as_sed_sh'" # depre + + + exec 6>&1 +-## ----------------------------------- ## +-## Main body of $CONFIG_STATUS script. ## +-## ----------------------------------- ## ++## ------------------------------------- ## ++## Main body of "$CONFIG_STATUS" script. ## ++## ------------------------------------- ## + _ASEOF +-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 ++test $as_write_fail = 0 && chmod +x "$CONFIG_STATUS" || ac_write_fail=1 + +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + # Save the log message, to keep $0 and so on meaningful, and to + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. + ac_log=" + This file was extended by gcl $as_me 2.7.1, which was +-generated by GNU Autoconf 2.72. Invocation command line was ++generated by GNU Autoconf 2.73. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -12516,7 +12691,7 @@ case $ac_config_headers in *" + esac + + +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + # Files that config.status was made for. + config_files="$ac_config_files" + config_headers="$ac_config_headers" +@@ -12524,7 +12699,7 @@ config_commands="$ac_config_commands" + + _ACEOF + +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + ac_cs_usage="\ + '$as_me' instantiates files and other configuration actions + from templates according to the current configuration. Unless the files +@@ -12556,16 +12731,16 @@ $config_commands + Report bugs to the package provider." + + _ACEOF +-ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +-ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ac_cs_config=`printf '%s\n' "$ac_configure_args" | sed "$ac_safe_unquote"` ++ac_cs_config_escaped=`printf '%s\n' "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + ac_cs_config='$ac_cs_config_escaped' + ac_cs_version="\\ + gcl config.status 2.7.1 +-configured by $0, generated by GNU Autoconf 2.72, ++configured by $0, generated by GNU Autoconf 2.73, + with options \\"\$ac_cs_config\\" + +-Copyright (C) 2023 Free Software Foundation, Inc. ++Copyright (C) 2026 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + +@@ -12574,10 +12749,14 @@ srcdir='$srcdir' + INSTALL='$INSTALL' + MKDIR_P='$MKDIR_P' + AWK='$AWK' +-test -n "\$AWK" || AWK=awk ++test -n "\$AWK" || { ++ awk '' >$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + # The default lists apply if the user does not specify any file. + ac_need_defaults=: + while test $# != 0 +@@ -12605,15 +12784,15 @@ do + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) +- printf "%s\n" "$ac_cs_version"; exit ;; ++ printf '%s\n' "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) +- printf "%s\n" "$ac_cs_config"; exit ;; ++ printf '%s\n' "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in +- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ *\'*) ac_optarg=`printf '%s\n' "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" +@@ -12621,7 +12800,7 @@ do + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in +- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ *\'*) ac_optarg=`printf '%s\n' "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; +@@ -12630,7 +12809,7 @@ do + as_fn_error $? "ambiguous option: '$1' + Try '$0 --help' for more information.";; + --help | --hel | -h ) +- printf "%s\n" "$ac_cs_usage"; exit ;; ++ printf '%s\n' "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; +@@ -12654,29 +12833,29 @@ if $ac_cs_silent; then + fi + + _ACEOF +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift +- \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 ++ \printf '%s\n' "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" + fi + + _ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + exec 5>>config.log + { + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX + ## Running $as_me. ## + _ASBOX +- printf "%s\n" "$ac_log" ++ printf '%s\n' "$ac_log" + } >&5 + + _ACEOF +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + # + # INIT-COMMANDS + # +@@ -12684,7 +12863,7 @@ AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-ma + + _ACEOF + +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + + # Handling of arguments. + for ac_config_target in $ac_config_targets +@@ -12769,13 +12948,13 @@ _ACEOF + echo "_ACEOF" + } >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ++ac_delim_num=`echo "$ac_subst_vars" | sed -n '$='` + ac_delim='%!_!# ' + for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + +- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` ++ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | sed -n '$='` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then +@@ -12786,7 +12965,7 @@ for ac_last_try in false false false fal + done + rm -f conf$$subs.sh + +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && + _ACEOF + sed -n ' +@@ -12831,9 +13010,9 @@ t delim + N + s/\n// + } +-' >>$CONFIG_STATUS || ac_write_fail=1 ++' >>"$CONFIG_STATUS" || ac_write_fail=1 + rm -f conf$$subs.awk +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + _ACAWK + cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 +@@ -12862,7 +13041,7 @@ cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + + _ACAWK + _ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" + else +@@ -12894,7 +13073,7 @@ s/^[^=]*=[ ]*$// + }' + fi + +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + fi # test -n "$CONFIG_FILES" + + # Set up the scripts for CONFIG_HEADERS section. +@@ -12965,9 +13144,9 @@ s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p + b cont + ' >$CONFIG_STATUS || ac_write_fail=1 ++"/g' >>"$CONFIG_STATUS" || ac_write_fail=1 + +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" + } +@@ -12985,8 +13164,12 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { ++ suffix = P[macro] D[macro] ++ while (suffix ~ /[\t ]$/) { ++ suffix = substr(suffix, 1, length(suffix) - 1) ++ } + # Preserve the white space surrounding the "#". +- print prefix "define", macro P[macro] D[macro] ++ print prefix "define", macro suffix + next + } else { + # Replace #undef with comments. This is necessary, for example, +@@ -13001,7 +13184,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ + { print } + _ACAWK + _ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 + fi # test -n "$CONFIG_HEADERS" + +@@ -13045,7 +13228,7 @@ do + esac || + as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;; + esac +- case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ++ case $ac_f in *\'*) ac_f=`printf '%s\n' "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + +@@ -13053,17 +13236,17 @@ do + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` +- printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' ++ printf '%s\n' "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +-printf "%s\n" "$as_me: creating $ac_file" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 ++printf '%s\n' "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) +- ac_sed_conf_input=`printf "%s\n" "$configure_input" | ++ ac_sed_conf_input=`printf '%s\n' "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac +@@ -13080,7 +13263,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X"$ac_file" | ++printf '%s\n' X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q +@@ -13104,9 +13287,9 @@ printf "%s\n" X"$ac_file" | + case "$ac_dir" in + .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) +- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` ++ ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. +- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` ++ ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; +@@ -13151,7 +13334,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_ + esac + _ACEOF + +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + # If the template does not know about datarootdir, expand it. + # FIXME: This hack should be removed a few years after 2.60. + ac_datarootdir_hack=; ac_datarootdir_seen= +@@ -13168,10 +13351,10 @@ ac_sed_dataroot=' + case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in + *datarootdir*) ac_datarootdir_seen=yes;; + *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +-printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 ++printf '%s\n' "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + _ACEOF +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g +@@ -13185,11 +13368,11 @@ _ACEOF + # Neutralize VPATH when '$srcdir' = '.'. + # Shell code in configure.ac might set extrasub. + # FIXME: do we really want to maintain this feature? +-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 + ac_sed_extra="$ac_vpsub + $extrasub + _ACEOF +-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 + :t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b + s|@configure_input@|$ac_sed_conf_input|;t t +@@ -13213,9 +13396,9 @@ test -z "$ac_datarootdir_hack$ac_dataroo + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir' ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir' + which seems to be undefined. Please make sure it is defined" >&5 +-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir' ++printf '%s\n' "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir' + which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" +@@ -13231,20 +13414,20 @@ which seems to be undefined. Please mak + # + if test x"$ac_file" != x-; then + { +- printf "%s\n" "/* $configure_input */" >&1 \ ++ printf '%s\n' "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +-printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 ++printf '%s\n' "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else +- printf "%s\n" "/* $configure_input */" >&1 \ ++ printf '%s\n' "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +@@ -13264,7 +13447,7 @@ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X"$_am_arg" | ++printf '%s\n' X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q +@@ -13284,8 +13467,8 @@ printf "%s\n" X"$_am_arg" | + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + +- :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +-printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ++ :C) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 ++printf '%s\n' "$as_me: executing $ac_file commands" >&6;} + ;; + esac + +@@ -13311,7 +13494,7 @@ esac + for am_mf + do + # Strip MF so we end up with the name of the file. +- am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` ++ am_mf=`printf '%s\n' "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line +@@ -13323,7 +13506,7 @@ $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/] + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X"$am_mf" | ++printf '%s\n' X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q +@@ -13345,7 +13528,7 @@ printf "%s\n" X"$am_mf" | + $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +-printf "%s\n" X/"$am_mf" | ++printf '%s\n' X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q +@@ -13370,8 +13553,8 @@ printf "%s\n" X/"$am_mf" | + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then +- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} ++ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 ++printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is +@@ -13394,7 +13577,7 @@ done # for ac_tag + + as_fn_exit 0 + _ACEOF +-ac_clean_files=$ac_clean_files_save ++ac_clean_CONFIG_STATUS= + + test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 +@@ -13410,19 +13593,26 @@ test $ac_write_fail = 0 || + # need to make the FD available again. + if test "$no_create" != yes; then + ac_cs_success=: ++ case $CONFIG_STATUS in #( ++ -*) : ++ ac_no_opts=-- ;; #( ++ *) : ++ ac_no_opts= ;; ++esac + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null +- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false ++ $SHELL $ac_no_opts "$CONFIG_STATUS" $ac_config_status_args || ++ ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 + fi + if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +-printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 ++printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + fi + + cmp $srcdir/h/$use.h h/config.h || cp $srcdir/h/$use.h h/config.h +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -833,26 +833,17 @@ AC_RUN_IFELSE( + AC_DEFINE(HAVE_CTZL,[1],[ctzl instruction])], + [AC_MSG_RESULT([no])]) + +- +-case $use in +-# sh4*) ;; #FIXME, these exceptions needed as of gcc 4.7 +-# hppa*) ;; #FIXME +-# powerpc*) ;; #FIXME +-# alpha*) ;; #FIXME +- ia64*) ;; #FIXME +- *) +- AC_MSG_CHECKING([__builtin___clear_cache]) +- AC_RUN_IFELSE( +- [AC_LANG_PROGRAM( +- [[]], +- [[ +- char v[1<<12]; +- __builtin___clear_cache(v,v+sizeof(v)); +- ]])], +- [AC_DEFINE(HAVE_BUILTIN_CLEAR_CACHE,1,[have __builtin__clear_cache instruction]) +- AC_MSG_RESULT(yes)], +- AC_MSG_RESULT(no));; +-esac ++AC_MSG_CHECKING([__builtin___clear_cache]) ++AC_RUN_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[]], ++ [[ ++ char v[1<<12]; ++ __builtin___clear_cache(v,v+sizeof(v)); ++ ]])], ++ [AC_DEFINE(HAVE_BUILTIN_CLEAR_CACHE,1,[have __builtin__clear_cache instruction]) ++ AC_MSG_RESULT(yes)], ++ AC_MSG_RESULT(no)) + + #AC_CONFIG_SUBDIRS($MY_SUBDIRS) + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre24" ++"Version_2_7_2pre25" +--- gcl27-2.7.1.orig/h/gclincl.h.in ++++ gcl27-2.7.1/h/gclincl.h.in +@@ -357,6 +357,10 @@ + #ifndef _ALL_SOURCE + # undef _ALL_SOURCE + #endif ++/* Enable extensions on Cosmopolitan Libc. */ ++#ifndef _COSMO_SOURCE ++# undef _COSMO_SOURCE ++#endif + /* Enable general extensions on macOS. */ + #ifndef _DARWIN_C_SOURCE + # undef _DARWIN_C_SOURCE +--- gcl27-2.7.1.orig/h/hppa-linux.h ++++ gcl27-2.7.1/h/hppa-linux.h +@@ -3,17 +3,17 @@ + #define SGC + #define STATIC_FUNCTION_POINTERS + +-/* #ifdef IN_SFASL */ +-/* #include */ +-/* #define CLEAR_CACHE_LINE_SIZE 32 */ +-/* #define CLEAR_CACHE {\ */ +-/* void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size; \ */ +-/* v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */ +-/* for (v=v1;v ++#define CLEAR_CACHE_LINE_SIZE 32 ++#define CLEAR_CACHE {\ ++ void *v1=memory->cfd.cfd_start,*v,*ve=v1+memory->cfd.cfd_size; \ ++ v1=(void *)((unsigned long)v1 & ~(CLEAR_CACHE_LINE_SIZE - 1));\ ++ for (v=v1;vcfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ */ +-/* v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ */ +-/* for (;vcfd.cfd_start,*ve=v+memory->cfd.cfd_size; \ ++ v=(void *)((unsigned long)v & ~(CLEAR_CACHE_LINE_SIZE - 1));\ ++ for (;v= (+ h tz) 24) (eql d 31) (eql m 12))) ++ (+ s (* n 60) (* 3600 (+ h tz -24)))) + ((+ (mktime s n h d (1- m) (- y 1900) (if tzp 0 -1)) +secs-to-1970+ tzo)))) + + (defun get-decoded-time () +--- gcl27-2.7.1.orig/o/sfaslmacho.c ++++ gcl27-2.7.1/o/sfaslmacho.c +@@ -458,6 +458,26 @@ relocate_code(void *v1,struct section *s + + } + ++static char * ++dup_sym(char *src) { ++ static char buf[256]; ++ const char *e="$DARWIN_EXTSN"; ++ char *c; ++ ++ if ((c=strstr(src,e))) { ++ memcpy(buf,src,(c-src)); ++ buf[c-src]=0; ++ printf("dup %s -> %s\n",src,buf); ++ return buf; ++ } ++ if (!strcmp(src,"_my_free")||!strcmp(src,"_my_calloc")||!strcmp(src,"_my_malloc")||!strcmp(src,"_my_realloc")) { ++ strcpy(buf,src+3); ++ printf("dup %s -> %s\n",src,buf); ++ return buf; ++ } ++ return NULL; ++} ++ + static int + load_self_symbols() { + +@@ -465,7 +485,7 @@ load_self_symbols() { + struct nlist *sym1=NULL,*sym,*syme=NULL; + struct node *a; + ul ns,sl,*uio=NULL; +- char *strtab=NULL,*ste,*s; ++ char *strtab=NULL,*ste,*s,*c; + void *addr,*addre; + FILE *f; + +@@ -484,6 +504,11 @@ load_self_symbols() { + ns++; + sl+=strlen(sym->n_un.n_strx+strtab)+1; + ++ if ((c=dup_sym(strtab+sym->n_un.n_strx))) { ++ ns++; ++ sl+=strlen(c)+1; ++ } ++ + } + + c_table.alloc_length=ns; +@@ -502,6 +527,17 @@ load_self_symbols() { + a++; + s+=strlen(s)+1; + ++ if ((c=dup_sym(strtab+sym->n_un.n_strx))) { ++ ++ a->address=sym->n_value; ++ a->string=s; ++ strcpy(s,c); ++ ++ a++; ++ s+=strlen(s)+1; ++ ++ } ++ + } + c_table.length=a-c_table.ptable; + qsort(c_table.ptable,c_table.length,sizeof(*c_table.ptable),node_compare); +--- gcl27-2.7.1.orig/o/usig.c ++++ gcl27-2.7.1/o/usig.c +@@ -191,14 +191,14 @@ DEFUN("FEDISABLEEXCEPT",object,fSfedisab + + #ifdef HAVE_FEENABLEEXCEPT + +- feclearexcept(FE_ALL_EXCEPT); ++ /* feclearexcept(FE_ALL_EXCEPT); */ + x=fedisableexcept(FE_ALL_EXCEPT); + + #elif defined(__x86_64__) || defined(__i386__) + #define ASM __asm__ __volatile__ + { + volatile unsigned int i=0; +- ASM("fnclex"); ++ /* ASM("fnclex"); */ + ASM("stmxcsr %0" :: "m" (i)); + i=(i|(FE_ALL_EXCEPT<<7)); + ASM("ldmxcsr %0" : "=m" (i)); diff --git a/debian/patches/Version_2_7_2pre26 b/debian/patches/Version_2_7_2pre26 new file mode 100644 index 00000000..54ade1c7 --- /dev/null +++ b/debian/patches/Version_2_7_2pre26 @@ -0,0 +1,50 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: May, 27 2026 18:03:02 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -467,7 +467,7 @@ CLEANFILES+=h/cmpinclude.h h/mstdint.h h + h/mstdint.h: + echo "#include " | \ + $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ +- grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@ ++ grep -E 'typedef .*u?int(8|16|32|64|128)_t;' >$@ + + h/mcompdefs.h: h/compdefs.h h/new_decl.h + $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\ +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -4765,7 +4765,7 @@ ansi_gcl/%.o: clcs/%.lisp | unixport/ans + h/mstdint.h: + echo "#include " | \ + $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ +- grep -E '^typedef .*u?int(8|16|32|64|128)_t;' >$@ ++ grep -E 'typedef .*u?int(8|16|32|64|128)_t;' >$@ + + h/mcompdefs.h: h/compdefs.h h/new_decl.h + $(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"page.h\"";print "---"} {a=$$1;gsub("\\.\\.\\.","",a);print "\"#define " $$1 "\" " a}' $< |\ +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre25" ++"Version_2_7_2pre26" diff --git a/debian/patches/Version_2_7_2pre27 b/debian/patches/Version_2_7_2pre27 new file mode 100644 index 00000000..da5e6b17 --- /dev/null +++ b/debian/patches/Version_2_7_2pre27 @@ -0,0 +1,1100 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jun, 15 2026 20:43:44 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpenv.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpenv.lsp +@@ -258,7 +258,12 @@ + (local-fun-fn fname) + (get fname 'cmp-inline) + (member (symbol-package fname) +- (load-time-value (mapcar #'symbol-package (list 'c-t-tt (mdlsym "sin") (mdlsym "memmove")))))))) ++ (load-time-value ++ (remove-duplicates ++ (mapcar #'symbol-package ++ (list 'c-t-tt ++ (mdlsym "fabs");FOXME dladdr macos unreliable, need core mdl in raw images ++ (mdlsym "sin") (mdlsym "memmove"))))))))) + + ;; (defun inline-asserted (fname) + ;; (unless *compiler-push-events* +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre26" ++"Version_2_7_2pre27" +--- gcl27-2.7.1.orig/h/386-macosx.h ++++ gcl27-2.7.1/h/386-macosx.h +@@ -20,11 +20,6 @@ + #undef HAVE_AOUT + #undef HAVE_ELF + +- +-/* Alternatively, we could use the global variable vm_page_size. */ +-#define PAGEWIDTH 12 +- +- + #include /* to get sbrk defined */ + + +@@ -107,18 +102,17 @@ do {int c=0; + + #define GET_FULL_PATH_SELF(a_) \ + do { \ +-extern int _NSGetExecutablePath (char *, unsigned long *); \ +-unsigned long bufsize = 1024; \ +-static char buf [1024]; \ +-static char fub [1024]; \ +-if (_NSGetExecutablePath (buf, &bufsize) != 0) { \ ++ uint32_t bufsize = 1024; \ ++ static char buf [1024]; \ ++ static char fub [1024]; \ ++ if (_NSGetExecutablePath (buf, &bufsize) != 0) { \ + error ("_NSGetExecutablePath failed"); \ +-} \ +-if (realpath (buf, fub) == 0) { \ ++ } \ ++ if (realpath (buf, fub) == 0) { \ + error ("realpath failed"); \ +-} \ +-(a_) = fub; \ +-} while (0) ++ } \ ++ (a_) = fub; \ ++ } while (0) + + #ifdef _LP64 + #define C_GC_OFFSET 4 +@@ -155,7 +149,7 @@ if (realpath (buf, fub) == 0) { + REG_LIST(8,MCF(__fpu_stmm0)),REG_LIST(16,MCF(__fpu_xmm0)));}) + + +-#include /*PATH_MAX MAXPATHLEN*/ ++#include + #undef MIN + #undef MAX + +--- gcl27-2.7.1.orig/h/aarch64-macosx.h ++++ gcl27-2.7.1/h/aarch64-macosx.h +@@ -20,11 +20,6 @@ + #undef HAVE_AOUT + #undef HAVE_ELF + +- +-/* Alternatively, we could use the global variable vm_page_size. */ +-/* #define PAGEWIDTH 12 */ +- +- + #include /* to get sbrk defined */ + + +@@ -107,17 +102,17 @@ do {int c=0; + + #define GET_FULL_PATH_SELF(a_) \ + do { \ +-uint32_t bufsize = 1024; \ +-static char buf [1024]; \ +-static char fub [1024]; \ +-if (_NSGetExecutablePath (buf, &bufsize) != 0) { \ ++ uint32_t bufsize = 1024; \ ++ static char buf [1024]; \ ++ static char fub [1024]; \ ++ if (_NSGetExecutablePath (buf, &bufsize) != 0) { \ + error ("_NSGetExecutablePath failed"); \ +-} \ +-if (realpath (buf, fub) == 0) { \ ++ } \ ++ if (realpath (buf, fub) == 0) { \ + error ("realpath failed"); \ +-} \ +-(a_) = fub; \ +-} while (0) ++ } \ ++ (a_) = fub; \ ++ } while (0) + + #define C_GC_OFFSET 4 + #include +@@ -141,7 +136,7 @@ if (realpath (buf, fub) == 0) { + + #define FPE_INIT Cnil + +-#include /*PATH_MAX MAXPATHLEN*/ ++#include + #undef MIN + #undef MAX + +--- gcl27-2.7.1.orig/h/mach64_i386_reloc.h ++++ gcl27-2.7.1/h/mach64_i386_reloc.h +@@ -2,13 +2,13 @@ + + #define GOT_RELOC(ri) ri->r_type==X86_64_RELOC_GOT_LOAD||ri->r_type==X86_64_RELOC_GOT + +- + case X86_64_RELOC_UNSIGNED: // for absolute addresses + + if (ri->r_extern || !ri->r_pcrel) + store_val(q,~0L,ri->r_pcrel ? a-rel : a); + + break; ++ + case X86_64_RELOC_GOT_LOAD: // a MOVQ load of a GOT entry + case X86_64_RELOC_GOT: // a MOVQ load of a GOT entry + +@@ -17,10 +17,11 @@ + a=(ul)got; + + case X86_64_RELOC_SIGNED: // for signed 32-bit displacement ++ case X86_64_RELOC_SIGNED_1: // adjustment in *q ++ case X86_64_RELOC_SIGNED_4: // adjustment in *q + case X86_64_RELOC_BRANCH: // a CALL/JMP instruction with 32-bit displacement + + if (ri->r_extern || !ri->r_pcrel) +- store_val(q,MASK(32),(ri->r_pcrel ? a-((ul)q+4) : a)+(signed)(*q&MASK(32))); ++ add_vals(q,MASK(32),(ri->r_pcrel ? a-((ul)q+4) : a)); + + break; +- +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -1673,6 +1673,5 @@ void stack_list(void); + void *msbrk(intptr_t); + int msbrk_init(void); + int msbrk_end(void); +- +-object +-quick_call_function_vec(object,ufixnum,object *); ++object quick_call_function_vec(object,ufixnum,object *); ++int msbrk_initialized(void); +--- gcl27-2.7.1.orig/lsp/gcl_dl.lsp ++++ gcl27-2.7.1/lsp/gcl_dl.lsp +@@ -3,27 +3,76 @@ + + (export '(mdlsym mdl lib-name)) + +-(defun lib-name (p) +- (if (or (string= p "") (string= p "libc") (string= p "libm")) "" +- (string-concatenate #+darwin "/usr/lib/system/" p #+darwin ".dylib" #+cygwin ".dll" #-(or darwin cygwin) ".so")));FIXME ++(defvar *lib-package-syms* nil);FIXME accelerator for do-symbols ++(defvar *dladdr-mods* nil) ++(defconstant +dl-suffix+ #+darwin ".dylib" #+cygwin ".dll" #-(or darwin cygwin) ".so") ++ ++(defun esubseq (s &optional (b 0) (e (length s)) &aux (s (string s)));avoid mdl/memmove call in subseq ++ (make-vector 'character (- e b) nil nil s b nil nil)) ++ ++(defun name-lib (n) ++ (when (>= (string-match (load-time-value (compile-regexp "\([^/]*\)$")) n) 0) ++ (setq n (esubseq n (match-beginning 1) (match-end 1)))) ++ (when (>= (string-match (load-time-value (compile-regexp "(\.(so|dylib|dll))$")) n) 0) ++ (setq n (esubseq n 0 (match-beginning 1)))) ++ #+darwin(when (>= (string-match (load-time-value (compile-regexp "^libsystem")) n) 0) ++ (setq n "libSystem")) ++ n) ++ ++(defun lib-name (p &aux (p (name-lib p))) ++ (if (member p '("" "libc" "libm") :test #'string=) ++ "" ; FIXME ++ (string-concatenate p +dl-suffix+))) ++ ++(defun find-external-symbol (str p) ++ (multiple-value-bind (sym key) (find-symbol str p) ++ (when (eq key :external) ++ sym))) ++ ++(defun fdlsym (str n pk &aux r sym) ++ (declare (dynamic-extent r)) ++ (let* ((n (name-lib n)) ++ (psym (find-symbol n pk))) ++ (mapc (lambda (x &aux (s (find-external-symbol str x))) ++ (when s ++ (when (if sym (<= (symbol-value s) (symbol-value sym)) t) ++ (setq sym s)))) ++ (if psym ++ (push psym r) ++ (when (zerop (length n)) ++ *lib-package-syms*))) ++ sym)) ++ ++(defun dladdr-mod (p n &aux (p (name-lib p))(n (name-lib n))) ++ (cond ((cdr (assoc p *dladdr-mods* :test 'string=))) ++ ((unless (string= p n) (plusp (length n))) ++ (cdar (push (cons p n) *dladdr-mods*))) ++ (p))) ++ ++(defun reg-psym (psym) ++ (car (or (member psym *lib-package-syms*) ++ (push psym *lib-package-syms*)))) ++ ++(defun mdlsym (str &optional (n "") ++ &aux (n (lib-name n)) ++ (pk (load-time-value (or (find-package "LIB") (make-package "LIB"))))) ++ (or ++ (fdlsym str n pk);FIXME repeated dlsym unreliable on non-Linux ++ (let* ((k (dlopen n)) ++ (ad (dlsym k str)) ++ (p (or (dladdr ad t) ""));FIXME work around dladdr here, not posix ++ (p (dladdr-mod p n)) ++ (psym (reg-psym (intern p pk))) ++ (npk (or (find-package psym) (make-package psym :use '(:cl)))) ++ (sym (and (shadow str npk) (intern str npk)))) ++ (export (list psym) pk) ++ (export sym npk) ++ (set psym k)(set sym ad) ++ sym))) + + (defun mdl (n p vad) +- (let* ((sym (mdlsym n (lib-name p))) ++ (let* ((sym (mdlsym n p)) + (ad (symbol-value sym)) + (adp (aref %init vad))) + (dladdr-set adp ad) + (dllist-push %memory sym adp))) +- +-(defun mdlsym (str &optional (n "" np)) +- (let* ((pk (or (find-package "LIB") (make-package "LIB"))) +- (k (if np (dlopen n) 0)) +- (ad (dlsym k str)) +- (p (or (dladdr ad t) ""));FIXME work around dladdr here, not posix +- (psym (intern p pk)) +- (npk (or (find-package psym) (make-package psym :use '(:cl)))) +- (sym (and (shadow str npk) (intern str npk)))) +- (export (list psym) pk) +- (export sym npk) +- (set psym k)(set sym ad) +- sym)) +- +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -1700,19 +1700,14 @@ bool writable_malloc=0; + static void * + malloc_internal(size_t size) { + +- if (!gcl_alloc_initialized) { ++ if (!msbrk_initialized()) { + static bool recursive_malloc; + if (recursive_malloc) + error("Bad malloc"); + recursive_malloc=1; + gcl_init_alloc(&size); + recursive_malloc=0; +- } else +- /*FIXME idempotent but required gcl_init_alloc functions in saved images*/ +-#ifdef INITIALIZE_BRK +- INITIALIZE_BRK; +-#endif +- ++ } + + CHECK_INTERRUPT; + +--- gcl27-2.7.1.orig/o/cfun.c ++++ gcl27-2.7.1/o/cfun.c +@@ -76,29 +76,16 @@ DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,O + + DEFUN("DLSYM",object,fSdlsym,SI,2,2,NONE,OI,OO,OO,OO,(fixnum h,object name),"") { + +- void *ad; ++ void *ad=0; + + dlerror(); + name=coerce_to_string(name); + massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>0); +-#ifndef __CYGWIN__ ++ + ad=dlsym(h ? (void *)h : RTLD_DEFAULT,FN1); +- ad=ad ? ad : dlsym(RTLD_DEFAULT,FN1); +- ad=is_text_addr(ad) ? dlsym(RTLD_NEXT,FN1) : ad; +-#else +- ad=0; +- if (h) ad=dlsym((void *)h,FN1); +- { +- static void *n,*u,*c; +- n=n ? n : dlopen("ntdll.dll",RTLD_LAZY|RTLD_GLOBAL); +- u=u ? u : dlopen("ucrtbase.dll",RTLD_LAZY|RTLD_GLOBAL); +- c=c ? c : dlopen("cygwin1.dll",RTLD_LAZY|RTLD_GLOBAL); +- ad=ad ? ad : dlsym(n,FN1); +- ad=ad ? ad : dlsym(u,FN1); +- ad=ad ? ad : dlsym(c,FN1); +- ad=ad ? ad : dlsym(RTLD_DEFAULT,FN1); +- } +-#endif ++ ++ ad=ad && is_text_addr(ad) ? dlsym(RTLD_NEXT,FN1) : ad; ++ + if (!ad) { + char *er=dlerror(); + FEerror("dlsym lookup failure on ~s: ~s",2,name,make_simple_string(er ? er : "")); +@@ -141,12 +128,8 @@ DEFUN("DLOPEN",object,fSdlopen,SI,1,1,NO + + dlerror(); + name=coerce_to_string(name); +- if (!strncmp("libc.so",name->st.st_self,VLEN(name)) || !strncmp("libm.so",name->st.st_self,VLEN(name))) +- v=dlopen(0,RTLD_LAZY|RTLD_GLOBAL); +- else { +- massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>0); +- v=dlopen(FN1,RTLD_LAZY|RTLD_GLOBAL); +- } ++ massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>=0); ++ v=dlopen(strlen(FN1) ? FN1 : 0,RTLD_LAZY|RTLD_GLOBAL); + if ((err=dlerror())) + FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err)); + +--- gcl27-2.7.1.orig/o/gprof.c ++++ gcl27-2.7.1/o/gprof.c +@@ -6,7 +6,7 @@ + static unsigned long gprof_on; + + /*all but this stub to be written in the future provided*/ +-#if defined(__APPLE__) && defined(__aarch64__) ++#if defined(__APPLE__) + void + _mcleanup(void) { + return; +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -434,6 +434,10 @@ next_shared_lib_map_no_malloc(void) { + static void *stack_map_base=(void *)-1; + void *shared_lib_start=(void *)-1; + ++#if defined(__APPLE__) ++unsigned long heap_vmsize=INITIAL_HEAP_VMSIZE; ++#endif ++ + static int + set_real_maxpage(void *beg) { + +@@ -445,11 +449,8 @@ set_real_maxpage(void *beg) { + + mp=ufmin(mp,get_phys_pages1(0,0)); + +-#if defined(__APPLE__) && defined(__aarch64__) +- { +- extern unsigned long heap_vmsize; +- mp=ufmin(mp,heap_vmsize>>PAGEWIDTH); +- } ++#if defined(__APPLE__) ++ mp=ufmin(mp,heap_vmsize>>PAGEWIDTH); + #endif + + sz=ufmin(mem_bound,log_maxpage_bound); +@@ -722,7 +723,7 @@ DEFUN("KCL-SELF",object,fSkcl_self,SI,0, + + } + +-#if defined(__APPLE__) && defined(__aarch64__) ++#if defined(__APPLE__) + #include "disable_mac_aslr.h" + #endif + +@@ -737,7 +738,7 @@ main(int argc, char **argv, char **envp) + bds_top = bds_org-1; + frs_top = frs_org-1; + +-#if defined(__APPLE__) && defined(__aarch64__) ++#if defined(__APPLE__) + disable_aslr(argc, argv, envp); + #endif + +--- gcl27-2.7.1.orig/o/msbrk.c ++++ gcl27-2.7.1/o/msbrk.c +@@ -7,6 +7,11 @@ static void *m; + static ufixnum sz,mps; + + int ++msbrk_initialized(void) { ++ return m!=NULL; ++} ++ ++int + msbrk_end(void) { + + sz+=(ufixnum)m; +@@ -33,7 +38,6 @@ new_map(void *v,ufixnum s) { + but not so large that the Mac linker ignores the segment designation + and creates a __huge section under __DATA for this and other + variables. We enlarge this on unexec.*/ +-unsigned long heap_vmsize=INITIAL_HEAP_VMSIZE; + #define mstr(a) #a + #define Mstr(a) mstr(a) + asm (".zerofill __HEAP,__heap,__end," Mstr(INITIAL_HEAP_VMSIZE) "\n\t.globl __end"); +--- gcl27-2.7.1.orig/o/regexp.c ++++ gcl27-2.7.1/o/regexp.c +@@ -230,8 +230,13 @@ int case_fold_search = 0; + * Beware that the optimization-preparation code in here knows about some + * of the structure of the compiled regexp. + */ ++ ++static char *regend; /* Non null terminated string end */ ++#define GET_UCHAR(a_) ({char *_a=(a_);_aprogram; + regc(MAGIC); +@@ -356,7 +363,7 @@ reg(int paren, int *flagp) + if (!(flags&HASWIDTH)) + *flagp &= ~HASWIDTH; + *flagp |= flags&SPSTART; +- while (*regparse == '|') { ++ while (GET_UCHAR(regparse) == '|') { + regparse++; + br = regbranch(&flags); + if (br == NULL) +@@ -376,10 +383,10 @@ reg(int paren, int *flagp) + regoptail(br, ender); + + /* Check for proper termination. */ +- if (paren && *regparse++ != ')') { ++ if (paren && GET_UCHAR(regparse++) != ')') { + FAIL("unmatched ()"); +- } else if (!paren && *regparse != '\0') { +- if (*regparse == ')') { ++ } else if (!paren && GET_UCHAR(regparse) != '\0') { ++ if (GET_UCHAR(regparse) == ')') { + FAIL("unmatched ()"); + } else + FAIL("junk on end"); /* "Can't happen". */ +@@ -406,7 +413,7 @@ regbranch(int *flagp) + + ret = regnode(BRANCH); + chain = NULL; +- while (*regparse != '\0' && *regparse != '|' && *regparse != ')') { ++ while (GET_UCHAR(regparse) != '\0' && GET_UCHAR(regparse) != '|' && GET_UCHAR(regparse) != ')') { + latest = regpiece(&flags); + if (latest == NULL) + return(NULL); +@@ -444,7 +451,7 @@ regpiece(int *flagp) + if (ret == NULL) + return(NULL); + +- op = *regparse; ++ op = GET_UCHAR(regparse); + if (!ISMULT(op)) { + *flagp = flags; + return(ret); +@@ -481,7 +488,7 @@ regpiece(int *flagp) + regoptail(ret, next); + } + regparse++; +- if (ISMULT(*regparse)) ++ if (ISMULT(GET_UCHAR(regparse))) + FAIL("nested *?+"); + + return(ret); +@@ -503,7 +510,7 @@ regatom(int *flagp) + + *flagp = WORST; /* Tentatively. */ + +- switch (*regparse++) { ++ switch (GET_UCHAR(regparse++)) { + case '^': + ret = regnode(BOL); + break; +@@ -524,19 +531,19 @@ regatom(int *flagp) + register int classend; + ret = regnode(ANYOF); + +- if (*regparse == '^') { /* Complement of range. */ ++ if (GET_UCHAR(regparse) == '^') { /* Complement of range. */ + matches = 0; + regparse++;} +- if (*regparse == ']' || *regparse == '-') +- REGC(*regparse++); +- while (*regparse != '\0' && *regparse != ']') { +- if (*regparse == '-') { ++ if (GET_UCHAR(regparse) == ']' || GET_UCHAR(regparse) == '-') ++ REGC(GET_UCHAR(regparse++)); ++ while (GET_UCHAR(regparse) != '\0' && GET_UCHAR(regparse) != ']') { ++ if (GET_UCHAR(regparse) == '-') { + regparse++; +- if (*regparse == ']' || *regparse == '\0') ++ if (GET_UCHAR(regparse) == ']' || GET_UCHAR(regparse) == '\0') + REGC('-'); + else { +- clss = UCHARAT(regparse-2)+1; +- classend = UCHARAT(regparse); ++ clss = GET_UCHAR(regparse-2)+1; ++ classend = GET_UCHAR(regparse); + if (clss > classend+1) + FAIL("invalid [] range"); + for (; clss <= classend; clss++) +@@ -544,10 +551,10 @@ regatom(int *flagp) + regparse++; + } + } else +- REGC(*regparse++); ++ REGC(GET_UCHAR(regparse++)); + } + REGC('\0'); +- if (*regparse != ']') ++ if (GET_UCHAR(regparse) != ']') + FAIL("unmatched []"); + regparse++; + *flagp |= HASWIDTH|SIMPLE; +@@ -597,10 +604,10 @@ regatom(int *flagp) + /* NOTREACHED */ + break; + case '\\': +- if (*regparse == '\0') ++ if (GET_UCHAR(regparse) == '\0') + FAIL("trailing \\"); + ret = regnode(EXACTLY); +- regc(*regparse++); ++ regc(GET_UCHAR(regparse++)); + regc('\0'); + *flagp |= HASWIDTH|SIMPLE; + break; +@@ -609,10 +616,12 @@ regatom(int *flagp) + register char ender; + + regparse--; +- len = strcspn(regparse, META); ++ len=({ufixnum _l=0;char _c,*_s=regparse;/*strcspn*/ ++ for (;(_c=GET_UCHAR(_s++)) && !strchr(META,_c);_l++); ++ _l;}); + if (len <= 0) + FAIL("internal disaster"); +- ender = *(regparse+len); ++ ender = GET_UCHAR(regparse+len); + if (len > 1 && ISMULT(ender)) + len--; /* Back off clear of ?+* operand. */ + *flagp |= HASWIDTH; +@@ -620,7 +629,7 @@ regatom(int *flagp) + *flagp |= SIMPLE; + ret = regnode(EXACTLY); + while (len > 0) { +- regc(*regparse++); ++ regc(GET_UCHAR(regparse++)); + len--; + } + regc('\0'); +@@ -775,7 +784,6 @@ static int + regexec(register regexp *prog, register char *string, char *start, int length) + { + register char *s; +- char saved,*savedp=NULL; + int value; + + /* Be paranoid... */ +@@ -806,13 +814,8 @@ regexec(register regexp *prog, register + return(0); + } + +- /* null terminate string */ +- if (length) +- { savedp = &string[length]; +- saved = *savedp; +- if (saved) *savedp=0; +- } +- else saved=0; ++ regend=string+length; ++ + #define RETURN_VAL(i) do {value=i; goto DO_RETURN;}while(0) + + /* Mark beginning of line for ^ . */ +@@ -836,13 +839,13 @@ regexec(register regexp *prog, register + + + int amt; +- unsigned char *s = (unsigned char *)string+ advance -1; ++ char *s = string+ advance -1; + min_initial_branch_length(prog, buf,advance); + switch(advance) { + case 1: + while (1) +- { if (buf[*s]==0) +- { if (*s == 0) RETURN_VAL(0); ++ { if (buf[GET_UCHAR(s)]==0) ++ { if (GET_UCHAR(s) == 0) RETURN_VAL(0); + else + if (regtry(prog,(char *)s-(1-1))) RETURN_VAL(1);} + s++; } +@@ -851,10 +854,10 @@ regexec(register regexp *prog, register + case 2: + while (length > 0) + { +- amt = (buf[s[0]]); ++ amt = (buf[GET_UCHAR(s)]); + if (amt == 0) + { +- amt = buf[s[-1]]-1; ++ amt = buf[GET_UCHAR(s-1)]-1; + if (amt <=0) { + if (regtry(prog,(char *)s-(advance-1))) + RETURN_VAL(1); +@@ -867,24 +870,24 @@ regexec(register regexp *prog, register + RETURN_VAL(0); + case 3: + while (length > 0) +- { amt = (buf[s[0]]); ++ { amt = (buf[GET_UCHAR(s)]); + if (amt == 0) +- {amt = buf[s[-1]]-1; ++ {amt = buf[GET_UCHAR(s-1)]-1; + if (amt <=0) +- {amt = buf[s[-2]]-2; ++ {amt = buf[GET_UCHAR(s-2)]-2; + if (amt <=0) + {if (regtry(prog,(char *)s-(advance-1))) RETURN_VAL(1); + else amt =1;}}} + s += amt; length -= amt;} + case 4: + while (length > 0) +- { amt = (buf[s[0]]); ++ { amt = (buf[GET_UCHAR(s)]); + if (amt == 0) +- {amt = buf[s[-1]]-1; ++ {amt = buf[GET_UCHAR(s-1)]-1; + if (amt <=0) +- {amt = buf[s[-2]]-2; ++ {amt = buf[GET_UCHAR(s-2)]-2; + if (amt <=0) +- {amt = buf[s[-3]]-3; ++ {amt = buf[GET_UCHAR(s-3)]-3; + if (amt <=0) + {if (regtry(prog,(char *)s-(advance-1))) RETURN_VAL(1); + else amt =1;}}}} +@@ -892,15 +895,15 @@ regexec(register regexp *prog, register + + default: + while (length > 0) +- { amt = (buf[s[0]]); ++ { amt = (buf[GET_UCHAR(s)]); + if (amt == 0) +- {amt = buf[s[-1]]-1; ++ {amt = buf[GET_UCHAR(s-1)]-1; + if (amt <=0) +- {amt = buf[s[-2]]-2; ++ {amt = buf[GET_UCHAR(s-2)]-2; + if (amt <=0) +- {amt = buf[s[-3]]-3; ++ {amt = buf[GET_UCHAR(s-3)]-3; + if (amt <=0) +- {amt = buf[s[-4]]-4; ++ {amt = buf[GET_UCHAR(s-4)]-4; + if (amt <=0) + {if (regtry(prog,(char *)s-(advance-1))) RETURN_VAL(1); + else amt =1;}}}}} +@@ -913,13 +916,13 @@ regexec(register regexp *prog, register + /* We know what char it must start with. */ + { if (case_fold_search) + {char ch = tolower(prog->regstart); +- while (*s) +- { if (tolower(*s)==ch) ++ while (GET_UCHAR(s)) ++ { if (tolower((GET_UCHAR(s)))==ch) + {if (regtry(prog, s)) + RETURN_VAL(1);} + s++;}} + else +- while ((s = strchr(s, prog->regstart)) != NULL) { ++ while ((s = memchr(s, prog->regstart,regend-s)) != NULL) { + if (regtry(prog, s)) + RETURN_VAL(1); + s++; +@@ -930,12 +933,11 @@ regexec(register regexp *prog, register + do { + if (regtry(prog, s)) + RETURN_VAL(1); +- } while (*s++ != '\0'); ++ } while (GET_UCHAR(s) && s++); + + /* Failure. */ + RETURN_VAL(0); + DO_RETURN: +- if(saved) *savedp=saved; + return value; + + } +@@ -1040,11 +1042,11 @@ regmatch(char *prog) + return(0); + break; + case EOL: +- if (*reginput != '\0') ++ if (GET_UCHAR(reginput) != '\0') + return(0); + break; + case ANY: +- if (*reginput == '\0') ++ if (GET_UCHAR(reginput) == '\0') + return(0); + reginput++; + break; +@@ -1055,12 +1057,12 @@ regmatch(char *prog) + opnd = OPERAND(scan); + if (case_fold_search) + while (*opnd ) +- { if (tolower(*opnd) != tolower(*ch)) ++ { if (tolower(*opnd) != tolower(GET_UCHAR(ch))) + return 0; + else { ch++; opnd++;}} + else + while (*opnd ) +- { if (*opnd != *ch) ++ { if (*opnd != GET_UCHAR(ch)) + return 0; + else { ch++; opnd++;}} + /* a match */ +@@ -1068,14 +1070,14 @@ regmatch(char *prog) + } + break; + case ANYOF: +- if (*reginput == '\0' || +- OPERAND(scan)[*(unsigned char *)reginput] == 0) ++ if (GET_UCHAR(reginput) == '\0' || ++ OPERAND(scan)[GET_UCHAR(reginput)] == 0) + return(0); + reginput++; + break; + case ANYBUT: +- if (*reginput == '\0' || +- OPERAND(scan)[*(unsigned char *)reginput] != 0) ++ if (GET_UCHAR(reginput) == '\0' || ++ OPERAND(scan)[GET_UCHAR(reginput)] != 0) + return(0); + reginput++; + break; +@@ -1168,9 +1170,9 @@ regmatch(char *prog) + while (no >= min) { + /* If it could work, try it. */ + if (nextch == '\0' || +- *reginput == nextch ++ GET_UCHAR(reginput) == nextch + || (case_fold_search && +- tolower(*reginput) == nextch)) ++ tolower(GET_UCHAR(reginput)) == nextch)) + if (regmatch(next)) + return(1); + /* Couldn't or didn't -- back up. */ +@@ -1217,34 +1219,34 @@ regrepeat(char *p) + opnd = OPERAND(p); + switch (OP(p)) { + case ANY: +- count = strlen(scan); ++ count = regend-scan/* strlen(scan) */; + scan += count; + break; + case EXACTLY: + { char ch = *opnd; + if (case_fold_search) + { ch = tolower(*opnd); +- while (ch == tolower(*scan)) ++ while (ch == tolower(GET_UCHAR(scan))) + { + count++; + scan++;}} + else +- while (ch == *scan) { ++ while (ch == GET_UCHAR(scan)) { + count++; + scan++; + }} + break; + case ANYOF: +- while (*scan != '\0' && +- opnd[*(unsigned char *)scan] != 0) ++ while (GET_UCHAR(scan) != '\0' && ++ opnd[GET_UCHAR(scan)] != 0) + { + count++; + scan++; + } + break; + case ANYBUT: +- while (*scan != '\0' && +- opnd[*(unsigned char *)scan] == 0) ++ while (GET_UCHAR(scan) != '\0' && ++ opnd[GET_UCHAR(scan)] == 0) + { + count++; + scan++; +--- gcl27-2.7.1.orig/o/regexpr.c ++++ gcl27-2.7.1/o/regexpr.c +@@ -65,18 +65,13 @@ DEFUN("MATCH-END",object,fSmatch_end,SI, + DEFUN("COMPILE-REGEXP",object,fScompile_regexp,SI,1,1,NONE,OO,OO,OO,OO,(object p), + "Provide handle to export pre-compiled regexp's to string-match") { + +- char *tmp; + object res; + void *v; + ufixnum sz=0; + + p=coerce_to_string(p); +- if (!(tmp=alloca(VLEN(p)+1))) +- FEerror("out of C stack",0); +- memcpy(tmp,p->st.st_self,VLEN(p)); +- tmp[VLEN(p)]=0; + +- if (!(v=(void *)regcomp(tmp,&sz))) ++ if (!(v=(void *)regcomp(p->st.st_self,&sz,VLEN(p)))) + FEerror("regcomp failure",0); + + res=alloc_object(t_vector); +@@ -115,7 +110,7 @@ be over written. \ + int len,start,end; + va_list ap; + object v=sSAmatch_dataA->s.s_dbind,l=Cnil,f=OBJNULL; +- char **pp,*str,save_c=0; ++ char **pp,*str; + + if (!stringp(pattern) && type_of(pattern)!=t_symbol && + (type_of(pattern)!=t_vector || pattern->v.v_elttype!=aet_uchar)) +@@ -168,20 +163,8 @@ be over written. \ + } + + str=string->st.st_self; +- if (NULL_OR_ON_C_STACK(str+end) || str+end==(void *)compiled_regexp) { +- +- if (!(str=alloca(VLEN(string)+1))) +- FEerror("Cannot allocate memory on C stack",0); +- memcpy(str,string->st.st_self,VLEN(string)); +- +- } else +- save_c=str[end]; +- str[end]=0; +- + ans = regexec(compiled_regexp,str+start,str,end-start); + +- str[end] = save_c; +- + if (!ans ) { + END_NO_INTERRUPT; + RETURN1((object)-1); +--- gcl27-2.7.1.orig/o/sfasli.c ++++ gcl27-2.7.1/o/sfasli.c +@@ -157,7 +157,7 @@ use_symbols(double d,...) { + d=d/(c+I*d); + } + +-#if defined(__APPLE__) && defined(__aarch64__)/*FIXME non-lazy pointer support in sfaslmacho.c*/ ++#if defined(__APPLE__)/*FIXME non-lazy pointer support in sfaslmacho.c*/ + extern void __chkstk_darwin(void); + __chkstk_darwin(); + #endif +--- gcl27-2.7.1.orig/o/sfaslmacho.c ++++ gcl27-2.7.1/o/sfaslmacho.c +@@ -48,7 +48,7 @@ typedef unsigned long ul; + STATIC_RELOC_VARS + #endif + +-static int ++static inline int + ovchks(ul v,ul m) { + + m|=m>>1; +@@ -58,14 +58,14 @@ ovchks(ul v,ul m) { + + } + +-static int ++static inline int + ovchku(ul v,ul m) { + + return !(v&=m); + + } + +-static int ++static inline int + store_val(ul *w,ul m,ul v) { + + *w=(v&m)|(*w&~m); +@@ -74,7 +74,7 @@ store_val(ul *w,ul m,ul v) { + + } + +-static int ++static inline int + store_valu(ul *w,ul m,ul v) { + + massert(ovchku(v,~m)); +@@ -84,7 +84,7 @@ store_valu(ul *w,ul m,ul v) { + + } + +-static int ++static inline int + store_vals(ul *w,ul m,ul v) { + + massert(ovchks(v,~m)); +@@ -92,21 +92,19 @@ store_vals(ul *w,ul m,ul v) { + + } + +-#ifdef W_X +-static int ++static inline int + add_vals(ul *w,ul m,ul v) { + +- return store_vals(w,m,v+(*w&m)); ++ return store_vals(w,m,v+(*w&m)-((*w&((m+1)>>1))<<1)); + + } + +-static int ++static inline int + add_valu(ul *w,ul m,ul v) { + + return store_valu(w,m,v+(*w&m)); + + } +-#endif + + #ifndef _LP64 + /*redirect trampolines gcc-4.0 gives no reloc for stub sections on x86 only*/ +@@ -467,12 +465,10 @@ dup_sym(char *src) { + if ((c=strstr(src,e))) { + memcpy(buf,src,(c-src)); + buf[c-src]=0; +- printf("dup %s -> %s\n",src,buf); + return buf; + } + if (!strcmp(src,"_my_free")||!strcmp(src,"_my_calloc")||!strcmp(src,"_my_malloc")||!strcmp(src,"_my_realloc")) { + strcpy(buf,src+3); +- printf("dup %s -> %s\n",src,buf); + return buf; + } + return NULL; +--- gcl27-2.7.1.orig/o/unexmacosx.c ++++ gcl27-2.7.1/o/unexmacosx.c +@@ -864,6 +864,7 @@ typedef struct { + typedef struct { + uint32_t magic; /* 0xfade0b01 (CSMAGIC_BLOBWRAPPER) */ + uint32_t length; /* Total length of header + CMS data */ ++ uint8_t zero[18040-30]; + } CS_BlobWrapper; + + #include +@@ -893,7 +894,7 @@ dump_code_signature(struct segment_comma + CS_Requirements rq; + CS_BlobWrapper cms; + const char *id="GCL"; +- const long nss=2,ss=32,id_len=RNDUP(strlen(id)+1,8); ++ const long nss=2,ss=32,id_len=strlen(id)+1; + long cd_len,len,np,i; + uint8_t hash[32],data[PAGESIZE]; + void *v; +@@ -901,11 +902,6 @@ dump_code_signature(struct segment_comma + + lseek(outfd,0,SEEK_END); + len=lseek(outfd,0,SEEK_CUR); +- if (len%16) { +- unsigned long x=0; +- mwrite(&x,sizeof(x)); +- len=lseek(outfd,0,SEEK_CUR); +- } + ldc.dataoff=len; + + np=RNDUP(len,PAGESIZE)>>PAGEWIDTH; +@@ -916,7 +912,7 @@ dump_code_signature(struct segment_comma + curr_header_offset+=ldc.cmdsize; + + le_seg->filesize+=ldc.datasize; +- le_seg->vmsize+=RNDUP(ldc.datasize,PAGESIZE); ++ le_seg->vmsize+=RNDUP(ldc.datasize,1<<14); + mpwrite(le_seg,sizeof(*le_seg),le_ho); + + uassert(curr_header_offset<=text_seg_lowest_offset); +@@ -931,7 +927,7 @@ dump_code_signature(struct segment_comma + mpwrite(&mh,sizeof(mh),0); + + sb.magic=htonl(0xfade0cc0); +- sb.length=htonl(sizeof(sb)+sizeof(bi)+cd_len+sizeof(rq)+sizeof(cms)); ++ sb.length=htonl(ldc.datasize-sizeof(cms.zero)-2); + sb.count=htonl(sizeof(bi)/sizeof(*bi)); + mwrite(&sb,sizeof(sb)); + +@@ -972,7 +968,7 @@ dump_code_signature(struct segment_comma + mwrite(v,id_len); + + rq.magic=htonl(0xfade0c01); +- rq.length=htonl(12); ++ rq.length=htonl(sizeof(rq)); + rq.count=htonl(0); + CC_SHA256(&rq,sizeof(rq),hash); + mwrite(hash,sizeof(hash)); +@@ -981,9 +977,9 @@ dump_code_signature(struct segment_comma + mwrite(hash,sizeof(hash)); + + for (i=0;icmd) { +@@ -1049,10 +1054,6 @@ dump_it () { + struct section *sectp = (struct section *) (scp + 1); + unsigned long header_offset=curr_header_offset + sizeof (struct segment_command); + extern int in_pre_gcl;/*support libboot.so*/ +- unsigned long heap_vmsize= \ +- (in_pre_gcl ? SAVED_PRE_IMAGE_SPAN : SAVED_IMAGE_SPAN) - \ +- (long)((long)data_start-text_vmaddr) - \ +- linkedit_vmsize; + + if (core_end-data_start>heap_vmsize) + unexec_error ("data exceeds __HEAP vmsize"); diff --git a/debian/patches/Version_2_7_2pre28 b/debian/patches/Version_2_7_2pre28 new file mode 100644 index 00000000..fe0d6ac7 --- /dev/null +++ b/debian/patches/Version_2_7_2pre28 @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jun, 16 2026 01:30:34 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre27" ++"Version_2_7_2pre28" +--- gcl27-2.7.1.orig/h/armhf-linux.h ++++ gcl27-2.7.1/h/armhf-linux.h +@@ -7,6 +7,6 @@ + + #define NEED_STACK_CHK_GUARD + +-#define OUTPUT_MACH bfd_mach_arm_9 ++#define OUTPUT_MACH bfd_mach_arm_7 + + #define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE") +--- gcl27-2.7.1.orig/lsp/gcl_dl.lsp ++++ gcl27-2.7.1/lsp/gcl_dl.lsp +@@ -10,7 +10,7 @@ + (defun esubseq (s &optional (b 0) (e (length s)) &aux (s (string s)));avoid mdl/memmove call in subseq + (make-vector 'character (- e b) nil nil s b nil nil)) + +-(defun name-lib (n) ++(defun name-lib (n &aux (n (string n))) + (when (>= (string-match (load-time-value (compile-regexp "\([^/]*\)$")) n) 0) + (setq n (esubseq n (match-beginning 1) (match-end 1)))) + (when (>= (string-match (load-time-value (compile-regexp "(\.(so|dylib|dll))$")) n) 0) diff --git a/debian/patches/Version_2_7_2pre30 b/debian/patches/Version_2_7_2pre30 new file mode 100644 index 00000000..30ee3ef7 --- /dev/null +++ b/debian/patches/Version_2_7_2pre30 @@ -0,0 +1,1424 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jun, 23 2026 18:56:31 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -158,7 +158,7 @@ C_SRC=o/typespec.c o/alloc.c o/gbc.c o/ + o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c o/unixsave.c o/funlink.c o/fat_string.c\ + o/run_process.c o/usig.c o/usig2.c o/utils.c o/makefun.c o/sockets.c o/gmp_wrappers.c\ + o/nsocket.c o/prelink.c o/sfasl.c o/msbrk.c \ +- o/user_init.c o/user_match.c o/mapfun.c ++ o/user_init.c o/user_match.c o/mapfun.c o/disable_aslr.c + # o/bitop.c o/nfunlink.c o/clxsocket.c + # o/bcmp.c o/bcopy.c o/bzero.c + +@@ -260,7 +260,7 @@ unixport/saved_%: | unixport/raw_% unixp + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ + GCL_LSPSYSDIR=../$(srcdir)/unixport/ \ +- ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ ++ ../unixport/raw_$* unixport/ -libdir ./ && \ + rm -f ../unixport/gcl_cmpnopt.lsp + rm -rf sb_$* + +@@ -605,14 +605,16 @@ info/gcl%.texi: info/gcl.texi + touch $@ + + %.info: %.texi | xbin/mktmp # FIXME parallel ugliness +- i=$$($| $@);ln -f $< $$i;$(MAKEINFO) $$i --output $@;rm -f $$i ++ i=$$($| $@);ln -f $< $$i;mkdir $$i.d;cp $(" ++ (let ((s (namestring si::*current-directory*))) ++ (subseq s 0 (1- (length s))))))) + (declare (special *c-debug*)) + (format nil "~a ~a -I~a ~a ~a -c ~a -o ~a" + (concatenate 'string +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp +@@ -179,8 +179,7 @@ + (defun init-name (p &optional sp) + + (if sp +- (let* ((p (truename p)) +- (pn (pathname-name p)) ++ (let* ((pn (pathname-name p)) + (g (zerop (si::string-match #v"^gcl_" pn)))) + (dash-to-underscore + (namestring +@@ -200,7 +199,7 @@ + (dash-to-underscore fname) + "__" + (if (boundp '*compiler-input*) +- (subseq *init-name* 4) ++ *init-name* + ""))))) + + (defvar *top-form* nil) +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -663,7 +663,6 @@ TCLSH + HAVE_SIGEMT + HAVE_SIGSYS + HAVE_SV_ONSTACK +-USE_CLEANUP + HAVE_PUTENV + HAVE_SETENV + NO_PROFILE +@@ -813,6 +812,7 @@ enable_debug + enable_static + enable_pic + enable_dependency_tracking ++enable_aslr + enable_text_base + enable_segment_alignment_bits + enable_initial_heap_vmsize +@@ -1493,6 +1493,7 @@ Optional Features: + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build ++ --disable-aslr will ensure reproducible builds and/or work around absent no-pie + --enable-text_base=0x.... set base address for __TEXT + --enable-segment_alignment_bits=... set bit alignment for mach-o image segments + --enable-initial_heap_vmsize=0x.... set heap size for raw images +@@ -7442,6 +7443,35 @@ add_args_to_cflags -fsigned-char -pipe + + add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy + ++# Check whether --enable-aslr was given. ++if test ${enable_aslr+y} ++then : ++ enableval=$enable_aslr; enable_aslr=$enableval ++else case e in #( ++ e) enable_asrl="yes" ;; ++esac ++fi ++ ++ ++{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether aslr must be disabled due to absent -no-pie" >&5 ++printf %s "checking whether aslr must be disabled due to absent -no-pie... " >&6; } ++if ! echo $LDFLAGS |grep -q -w '\-no\-pie'; then ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf '%s\n' "yes" >&6; } ++ enable_aslr="no" ++else ++ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf '%s\n' "no" >&6; } ++fi ++ ++if test "$enable_aslr" != "yes" ; then ++ ++printf '%s\n' "#define DISABLE_ASLR 1" >>confdefs.h ++ ++fi ++ ++ ++ + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for inline semantics" >&5 + printf %s "checking for inline semantics... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -11577,16 +11607,6 @@ fi + + fi + +-ac_fn_c_check_func "$LINENO" "_cleanup" "ac_cv_func__cleanup" +-if test "x$ac_cv_func__cleanup" = xyes +-then : +- +-printf '%s\n' "#define USE_CLEANUP 1" >>confdefs.h +- +-fi +- +- +- + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5 + printf %s "checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... " >&6; } + +@@ -12142,7 +12162,8 @@ LI_GITTAG="$GIT_TAG" + LI_RELEASE="$RELEASE" + + #LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS $LISP_CFLAGS" | sed 's,-pg\b,,g'`\"" +-LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS" | sed 's,-pg\b,,g'`\"" ++STRIP_FINAL_CFLAGS=`echo $FINAL_CFLAGS | sed "s,$(pwd),,g"` ++LI_CC="\"$GCL_CC -c `echo " $STRIP_FINAL_CFLAGS" | sed 's,-pg\b,,g'`\"" + + LI_DFP="\"$GPL_FLAG\"" + +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -286,6 +286,23 @@ add_args_to_cflags -fsigned-char -pipe + + add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy + ++AC_ARG_ENABLE([aslr],[ --disable-aslr will ensure reproducible builds and/or work around absent no-pie], ++ [enable_aslr=$enableval],[enable_asrl="yes"]) ++ ++AC_MSG_CHECKING([whether aslr must be disabled due to absent -no-pie]) ++if ! echo $LDFLAGS |grep -q -w '\-no\-pie'; then ++ AC_MSG_RESULT([yes]) ++ enable_aslr="no" ++else ++ AC_MSG_RESULT([no]) ++fi ++ ++if test "$enable_aslr" != "yes" ; then ++ AC_DEFINE([DISABLE_ASLR],[1],[disable aslr]) ++fi ++ ++ ++ + AC_MSG_CHECKING([for inline semantics]) + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([[ +@@ -1739,9 +1756,6 @@ if test "$no_setenv" = "1" ; then + AC_SUBST(HAVE_PUTENV) + fi + +-AC_CHECK_FUNC(_cleanup, [AC_DEFINE(USE_CLEANUP,1,[have _cleanup function])],) +-AC_SUBST(USE_CLEANUP) +- + AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O]) + + case $system in +@@ -1948,7 +1962,8 @@ AC_SUBST(LI_GITTAG) + LI_RELEASE="$RELEASE" + AC_SUBST(LI_RELEASE) + #LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS $LISP_CFLAGS" | sed 's,-pg\b,,g'`\"" +-LI_CC="\"$GCL_CC -c `echo " $FINAL_CFLAGS" | sed 's,-pg\b,,g'`\"" ++STRIP_FINAL_CFLAGS=`echo $FINAL_CFLAGS | sed "s,$(pwd),,g"` ++LI_CC="\"$GCL_CC -c `echo " $STRIP_FINAL_CFLAGS" | sed 's,-pg\b,,g'`\"" + AC_SUBST(LI_CC) + LI_DFP="\"$GPL_FLAG\"" + AC_SUBST(LI_DFP) +--- gcl27-2.7.1.orig/gcl-tk/tkl.lisp ++++ gcl27-2.7.1/gcl-tk/tkl.lisp +@@ -1496,7 +1496,7 @@ on ~a as in: ~s~%" host command ))) + (format st "~%(in-package ~s)" (package-name *package*)) + (dolist (v lis) (get-file-autoloads v st)) + (format st "~%(in-package ~s)" (package-name *package*)) +- (format st "~2%~s" `(setq si::*load-path* (append ',*paths* si::*load-path*))) ++ ;(format st "~2%~s" `(setq si::*load-path* (append ',*paths* si::*load-path*))) + + )) + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre28" ++"Version_2_7_2pre30" +--- gcl27-2.7.1.orig/h/error.h ++++ gcl27-2.7.1/h/error.h +@@ -191,12 +191,4 @@ object ihs_top_function_name(ihs_ptr h); + + #define ASSERT(a_) do {if (!(a_)) NERROR("The assertion " #a_ " failed");} while (0) + +-#define gcl_abort() ({\ +- frame_ptr fr=frs_sch_catch(sSPtop_abort_tagP->s.s_dbind);\ +- vs_base[0]=sSPtop_abort_tagP->s.s_dbind;\ +- vs_top=vs_base+1;\ +- if (fr) unwind(fr,sSPtop_abort_tagP->s.s_dbind);\ +- abort();\ +- }) +- + #endif /*ERROR_H*/ +--- gcl27-2.7.1.orig/h/gclincl.h.in ++++ gcl27-2.7.1/h/gclincl.h.in +@@ -15,6 +15,9 @@ + /* debug safecdr code */ + #undef DEBUG_SAFE_CDR + ++/* disable aslr */ ++#undef DISABLE_ASLR ++ + /* big endian word order */ + #undef DOUBLE_BIGENDIAN + +@@ -335,9 +338,6 @@ + backward compatibility; new code need not use it. */ + #undef STDC_HEADERS + +-/* have _cleanup function */ +-#undef USE_CLEANUP +- + /* use fionbio for non-blocking io */ + #undef USE_FIONBIO + +--- gcl27-2.7.1.orig/h/notcomp.h ++++ gcl27-2.7.1/h/notcomp.h +@@ -357,3 +357,5 @@ EXTER gmp_randfnptr_t Mersenne_Twister_G + #define collect(p_,f_) (p_)=&(*(p_)=(f_))->c.c_cdr + #define READ_STREAM_OR_FASD(strm_) \ + type_of(strm_)==t_stream ? read_object_non_recursive(strm_) : fSread_fasd_top(strm_) ++ ++#define NO_TRUENAME (raw_image || no_truename) +--- gcl27-2.7.1.orig/h/object.h ++++ gcl27-2.7.1/h/object.h +@@ -422,7 +422,7 @@ EXTER long holepage; /* hole pages * + EXTER fixnum new_holepage,starting_hole_div,starting_relb_heap_mult; + + EXTER ulfixnum cumulative_allocation,recent_allocation; +-EXTER ufixnum wait_on_abort; ++EXTER ufixnum wait_on_abort,no_truename; + EXTER double gc_alloc_min,mem_multiple,gc_page_min,gc_page_max; + EXTER char *multiprocess_memory_pool; + +@@ -630,7 +630,7 @@ EXTER object sSlambda_block_expanded; + # ifdef __GNUC__ + # define assert(ex)\ + {if (!(ex)){(void)fprintf(stderr, \ +- "Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);gcl_abort();}} ++ "Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);do_gcl_abort();}} + # else + # define assert(ex) + # endif +@@ -652,7 +652,7 @@ EXTER object sSlambda_block_expanded; + #define END_NO_INTERRUPT_SAFE \ + signals_allowed = old_signals_allowed; \ + if (signals_pending) \ +- do{ if(signals_allowed ==0) /* should not get here*/gcl_abort(); \ ++ do{ if(signals_allowed ==0) /* should not get here*/do_gcl_abort(); \ + raise_pending_signals(sig_safe)}while(0) + + +--- gcl27-2.7.1.orig/h/pool.h ++++ gcl27-2.7.1/h/pool.h +@@ -120,6 +120,7 @@ close_pool(void) { + massert(!close(pool)); + massert(!munmap(Pool,sizeof(struct pool))); + pool=-1; ++ memset(gcl_pool,0,sizeof(gcl_pool)); + } + #endif + +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -1675,3 +1675,7 @@ int msbrk_init(void); + int msbrk_end(void); + object quick_call_function_vec(object,ufixnum,object *); + int msbrk_initialized(void); ++void *mdlopen(const char *,int); ++void close_dlopen_list(void); ++void set_global_env_defaults(void); ++void disable_aslr(int,char **,char **); +--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp ++++ gcl27-2.7.1/lsp/gcl_iolib.lsp +@@ -456,17 +456,17 @@ + (file-output-stream (when outp (c-stream-fp strm)))))) + + (defun load-pathname-exists (z) +- (or (probe-file z) +- (when *allow-gzipped-file* +- (when (probe-file (string-concatenate (namestring z) ".gz")) +- z)))) ++ (when (or (probe-file z) ++ (when *allow-gzipped-file* ++ (probe-file (string-concatenate (namestring z) ".gz")))) ++ z)) + + (defun load-pathname (p print if-does-not-exist external-format + &aux (pp (merge-pathnames p)) + (epp (reduce (lambda (y x) (or y (load-pathname-exists (translate-pathname x "" p)))) + '(#P".o" #P".lsp" #P".lisp" #P"") :initial-value nil)));FIXME newest? + (if epp +- (let* ((*load-pathname* pp)(*load-truename* epp)) ++ (let* ((*load-pathname* pp)(*load-truename* (or (probe-file epp) epp))) + (with-open-file + (s epp :external-format external-format) + (if (member (peek-char nil s nil 'eof) '#.(mapcar 'code-char (list 127 #xcf #xce #x4c #x64))) +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -1737,6 +1737,7 @@ free(void *ptr) { + + for (p = &malloc_list,pp=*p; pp && !endp(pp); p = &((pp)->c.c_cdr),pp=pp->c.c_cdr) + if ((pp)->c.c_car->st.st_self == ptr) { ++ memset((pp)->c.c_car->st.st_self,0,(pp)->c.c_car->st.st_dim); + (pp)->c.c_car->st.st_self = NULL; + *p = pp->c.c_cdr; + return; +@@ -1782,6 +1783,7 @@ realloc(void *ptr, size_t size) { + VFILLP_SET(x,size); + return(ptr); + } else { ++ memset(x->st.st_self,0,x->st.st_dim); + x->st.st_self = alloc_contblock(size); + x->st.st_dim = size; + VSET_MAX_FILLP(x); +--- gcl27-2.7.1.orig/o/assignment.c ++++ gcl27-2.7.1/o/assignment.c +@@ -192,7 +192,7 @@ DEFUN("FSET",object,fSfset,SI,2,2,NONE,O + if (function->fun.fun_plist!=Cnil) { + function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car=sym;/*FIXME*/ + x=function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car; +- function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car=x==Cnil ? sLAload_truenameA->s.s_dbind : x; ++ function->fun.fun_plist->c.c_cdr->c.c_cdr->c.c_cdr->c.c_car=x==Cnil ? sLAload_pathnameA->s.s_dbind : x; + } + RETURN1(function); + +--- gcl27-2.7.1.orig/o/cfun.c ++++ gcl27-2.7.1/o/cfun.c +@@ -73,7 +73,27 @@ DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,O + } + RETURN1(Cnil); + } +- ++ ++DEFVAR("*DLOPEN-HANDLES*",sSAdlopen_handlesA,SI,Cnil,""); ++ ++void ++close_dlopen_list(void) { ++ for (;sSAdlopen_handlesA->s.s_dbind!=Cnil;sSAdlopen_handlesA->s.s_dbind=sSAdlopen_handlesA->s.s_dbind->c.c_cdr) ++ dlclose((void *)fix(sSAdlopen_handlesA->s.s_dbind->c.c_car)); ++} ++ ++void * ++mdlopen(const char *name,int flags) { ++ void *v=dlopen(name,flags); ++ if (name) { ++ object x=sSAdlopen_handlesA->s.s_dbind; ++ for (;x!=Cnil && fix(x->c.c_car)!=(fixnum)v;x=x->c.c_cdr); ++ if (x==Cnil) ++ sSAdlopen_handlesA->s.s_dbind=MMcons(make_fixnum((fixnum)v),sSAdlopen_handlesA->s.s_dbind); ++ } ++ return v; ++} ++ + DEFUN("DLSYM",object,fSdlsym,SI,2,2,NONE,OI,OO,OO,OO,(fixnum h,object name),"") { + + void *ad=0; +--- gcl27-2.7.1.orig/o/cmpaux.c ++++ gcl27-2.7.1/o/cmpaux.c +@@ -613,8 +613,12 @@ gcl_init_or_load1(void (*fn)(void),const + + printf("Initializing %s\n",file);fflush(stdout); + lpn=make_simple_string(file); +- massert(realpath(file,FN1)); +- ltn=make_simple_string(FN1); ++ if (NO_TRUENAME) ++ ltn=lpn; ++ else { ++ massert(realpath(file,FN1)); ++ ltn=make_simple_string(FN1); ++ } + memory=new_cfdata(); + memory->d.tt=1; + memory->cfd.cfd_name=ltn; +--- /dev/null ++++ gcl27-2.7.1/o/disable_aslr.c +@@ -0,0 +1,139 @@ ++#include "include.h" ++ ++#ifdef DISABLE_ASLR ++ ++#if defined(__APPLE__) ++ ++#include ++#include ++#include ++#include ++#include ++ ++#ifndef POSIX_SPAWN_DISABLE_ASLR ++#define POSIX_SPAWN_DISABLE_ASLR 0x0100 ++#endif ++ ++void ++disable_aslr(int argc, char **argv, char **envp) { ++ ++ pid_t pid; ++ posix_spawnattr_t attr; ++ ++ if (!_dyld_get_image_vmaddr_slide(0)) { ++ return; ++ } ++ ++ posix_spawnattr_init(&attr); ++ posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETEXEC | POSIX_SPAWN_DISABLE_ASLR); ++ if (posix_spawn(&pid, argv[0], NULL, &attr, argv, envp)) { ++ perror("posix_spawn to disable ASLR failed"); ++ do_gcl_abort(); ++ } ++ posix_spawnattr_destroy(&attr); ++ ++} ++ ++#else ++ ++#include ++#include ++#include ++ ++ ++static inline void ++reexec(int argc, char **argv, char **envp) { ++ ++ int i,j,k; ++ char **n,**a; ++ void *v; ++ ++ for (i=j=0;argv[i];i++) ++ j+=strlen(argv[i])+1; ++ for (k=0;envp[k];k++) ++ j+=strlen(envp[k])+1; ++ j+=(i+k+3)*sizeof(char *); ++ ++ msbrk_init(); ++ massert((v=sbrk(j))!=(void *)-1); ++ ++ a=v; ++ v=a+i+1; ++ n=v; ++ v=n+k+2; ++ ++ for (i=0;argv[i];i++) { ++ a[i]=v; ++ strcpy(v,argv[i]); ++ v+=strlen(v)+1; ++ } ++ a[i]=0; ++ ++ for (k=0;envp[k];k++) { ++ n[k]=v; ++ strcpy(v,envp[k]); ++ v+=strlen(v)+1; ++ } ++ n[k]="GCL_UNRANDOMIZE=t"; ++ n[k+1]=0; ++ ++ gcl_cleanup(0); ++ massert(execve(*a,a,n)!=-1); ++ ++} ++ ++#if defined(__linux__) ++ ++#include ++#include ++ ++void ++disable_aslr(int argc, char **argv, char **envp) { ++ ++ long pers; ++ long flag = ADDR_NO_RANDOMIZE|(sizeof(flag)==4 ? ADDR_LIMIT_3GB : 0); ++ ++ massert((pers=personality(-1))!=-1); ++ ++ /*READ_IMPLIES_EXEC is for selinux, but selinux will reset it in the child*/ ++ massert((pers=personality(READ_IMPLIES_EXEC|pers))!=-1); ++ ++ if ((pers & flag)!=flag && !getenv("GCL_UNRANDOMIZE")) { ++ ++ massert(personality(pers | flag)!=-1); ++ massert((personality(-1)&flag)==flag); ++ ++ reexec(argc,argv,envp); ++ ++ } ++ ++} ++ ++#elif defined(__FreeBSD_kernel__) ++ ++#include ++ ++void ++disable_aslr(int argc, char **argv, char **envp) { ++ ++ const int cctl=PROC_ASLR_FORCE_DISABLE; ++ int stat,ctl=cctl; ++ ++ massert(procctl(P_PID, 0, PROC_ASLR_STATUS, &stat) != -1); ++ ++ if ((stat&cctl)!=cctl && !getenv("GCL_UNRANDOMIZE")) { ++ ++ massert(procctl(P_PID, 0, PROC_ASLR_CTL, &ctl) != -1); ++ massert(procctl(P_PID, 0, PROC_ASLR_STATUS, &stat) != -1); ++ massert((stat&cctl)==cctl); ++ ++ reexec(argc,argv,envp); ++ ++ } ++ ++} ++#endif ++ ++#endif ++ ++#endif +--- gcl27-2.7.1.orig/o/error.c ++++ gcl27-2.7.1/o/error.c +@@ -41,7 +41,7 @@ assert_error(const char *a,unsigned l,co + make_simple_string(f),make_simple_string(n),make_simple_string(strerror(errno))); + else { + emsg("The assertion %s on line %d of %s in function %s failed: %s",a,l,f,n,strerror(errno)); +- gcl_abort(); ++ do_gcl_abort(); + } + + } +--- gcl27-2.7.1.orig/o/eval.c ++++ gcl27-2.7.1/o/eval.c +@@ -134,12 +134,17 @@ funcall_vec(object fun,fixnum n,object * + + } + ++static object eval_vec[MAX_ARGS+1]; ++ ++void ++clear_eval_vec(void) { ++ memset(eval_vec,0,sizeof(eval_vec)); ++} + + static object + funcall_ap(object fun,fixnum n,va_list ap) { + +- static object b[MAX_ARGS+1]; +- object *t=b; ++ object *t=eval_vec; + ufixnum j=labs(n),i; + + for (i=j;i--;) +@@ -148,11 +153,11 @@ funcall_ap(object fun,fixnum n,va_list a + object x=*--t; + for (i=fun->fun.fun_minarg-(j-1);i--;*t++=x->c.c_car,x=x->c.c_cdr,n--) + if (x==Cnil) +- FEtoo_few_arguments(b,t); ++ FEtoo_few_arguments(eval_vec,t); + *t++=x; + } + +- return funcall_vec(fun,n,b); ++ return funcall_vec(fun,n,eval_vec); + + } + +--- gcl27-2.7.1.orig/o/file.d ++++ gcl27-2.7.1/o/file.d +@@ -1396,8 +1396,12 @@ load(const char *s) { + + filename = make_simple_string(s); + vs_push(filename); +- massert(realpath(s,FN2)); +- tfn = make_simple_string(FN2); ++ if (NO_TRUENAME) ++ tfn=filename; ++ else { ++ massert(realpath(s,FN2)); ++ tfn = make_simple_string(FN2); ++ } + bds_bind(sLAload_pathnameA,filename); + bds_bind(sLAload_truenameA,tfn); + +@@ -1959,7 +1963,7 @@ DEFUN("SOCKET-INT",object,fSsocket_int,S + exit(0); + break; + case -1: +- gcl_abort(); ++ do_gcl_abort(); + break; + default: + close_stream(y); +--- gcl27-2.7.1.orig/o/gbc.c ++++ gcl27-2.7.1/o/gbc.c +@@ -813,7 +813,9 @@ mark_phase(void) { + #ifndef N_RECURSION_REQD + #define N_RECURSION_REQD 2 + #endif +- mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully); ++ ++ if (!saving_system) ++ mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully); + + } + +@@ -925,6 +927,8 @@ mark_c_stack(jmp_buf env1, int n, void ( + } + #endif + ++ c_stack_where=NULL; ++ + } + + static void +--- gcl27-2.7.1.orig/o/gmp.c ++++ gcl27-2.7.1/o/gmp.c +@@ -10,7 +10,7 @@ static void *gcl_gmp_realloc(void *oldme + { + unsigned int *old,*new; + if (!jmp_gmp) { /* No gc in alloc if jmp_gmp */ +- if (MP_SELF(big_gcprotect)) gcl_abort(); ++ if (MP_SELF(big_gcprotect)) do_gcl_abort(); + MP_SELF(big_gcprotect)=oldmem; + MP_ALLOCATED(big_gcprotect)=oldsize/MP_LIMB_SIZE; + } +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -333,18 +333,33 @@ acceptable_log_maxpage_bound(ufixnum l) + (void *)heap_end-data_start+CEI(rb_pointer-rb_begin(),PAGESIZE) < (1UL<<(l+1))); + } + ++void ++set_global_env_defaults(void) { ++ mem_multiple=1.0; ++ mem_bound=sizeof(fixnum)*8-1; ++ gc_alloc_min=0.05; ++ gc_page_min=0.5; ++ gc_page_max=0.75; ++ multiprocess_memory_pool=NULL; ++ wait_on_abort=0; ++ no_truename=0; ++} ++ + static void + get_gc_environ(void) { + + const char *e; + +- mem_multiple=1.0; ++ set_global_env_defaults(); ++ ++ if (getenv("GCL_NO_TRUENAME")) ++ no_truename=1; ++ + if ((e=getenv("GCL_MEM_MULTIPLE"))) { + massert(sscanf(e,"%lf",&mem_multiple)==1); + massert(mem_multiple>=0.0); + } + +- mem_bound=sizeof(fixnum)*8-1; + if ((e=getenv("GCL_MEM_BOUND"))) { + ufixnum f; + massert(sscanf(e,"%lud",&f)==1); +@@ -354,19 +369,16 @@ get_gc_environ(void) { + } + } + +- gc_alloc_min=0.05; + if ((e=getenv("GCL_GC_ALLOC_MIN"))) { + massert(sscanf(e,"%lf",&gc_alloc_min)==1); + massert(gc_alloc_min>=0.0); + } + +- gc_page_min=0.5; + if ((e=getenv("GCL_GC_PAGE_MIN"))||(e=getenv("GCL_GC_PAGE_THRESH"))) {/*legacy support*/ + massert(sscanf(e,"%lf",&gc_page_min)==1); + massert(gc_page_min>=0.0); + } + +- gc_page_max=0.75; + if ((e=getenv("GCL_GC_PAGE_MAX"))) { + massert(sscanf(e,"%lf",&gc_page_max)==1); + massert(gc_page_max>=0.0); +@@ -377,7 +389,6 @@ get_gc_environ(void) { + (*multiprocess_memory_pool=='t' || *multiprocess_memory_pool=='T'))/*GCL 2.6 compatability*/ + multiprocess_memory_pool=getenv("HOME"); + +- wait_on_abort=0; + if ((e=getenv("GCL_WAIT_ON_ABORT"))) + massert(sscanf(e,"%lu",&wait_on_abort)==1); + +@@ -574,7 +585,7 @@ init_boot(void) { + z=alloca(n); + snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s); + #ifdef USE_LIBBOOT +- if (!(v=dlopen(z,RTLD_LAZY|RTLD_GLOBAL))) ++ if (!(v=mdlopen(z,RTLD_LAZY|RTLD_GLOBAL))) + printf("%s\n",dlerror()); + if (!(q=dlsym(v,"gcl_init_boot"))) + printf("%s\n",dlerror()); +@@ -617,17 +628,20 @@ gcl_mprotect(void *v,unsigned long l,int + + DEFVAR("*CODE-BLOCK-RESERVE*",sSAcode_block_reserveA,SI,Cnil,""); + +-#define HAVE_GCL_CLEANUP +- + void + gcl_cleanup(int gc) { + ++ frame_ptr fr; ++ + if (getenv("GCL_WAIT")) + sleep(30); + +-#if defined(USE_CLEANUP) +- {extern void _cleanup(void);_cleanup();} +-#endif ++ if (sSPtop_abort_tagP && sSPtop_abort_tagP->s.s_dbind!=Cnil) { ++ fr=frs_sch_catch(sSPtop_abort_tagP->s.s_dbind); ++ vs_base[0]=sSPtop_abort_tagP->s.s_dbind; ++ vs_top=vs_base+1; ++ if (fr) unwind(fr,sSPtop_abort_tagP->s.s_dbind); ++ } + + #ifdef USE_GPROF + gprof_cleanup(); +@@ -655,14 +669,14 @@ gcl_cleanup(int gc) { + static char *stack_to_be_allocated; + + int +-stack_ret(char *s,unsigned long size) { ++stack_ret(volatile char *s,unsigned long size) { + int r,i; + for (i=r=0;i1); +- for (s=NULL;(s=strtok(s ? NULL : FN1,":"));) { +- +- massert(snprintf(FN2,sizeof(FN2),"%s/%s",s,n)); +- if (mbin(FN2,o)) +- return 1; +- +- } +- +- return 0; +- ++ f+=w-stack_to_be_allocated; ++ stack_to_be_allocated=NULL; ++ RETURN1((object)f); + } + +-#endif +- + DEFUN("KCL-SELF",object,fSkcl_self,SI,0,0,NONE,OO,OO,OO,OO,(void),"") { + + return make_simple_string(kcl_self); + + } + +-#if defined(__APPLE__) +-#include "disable_mac_aslr.h" +-#endif +- + int + main(int argc, char **argv, char **envp) { + +- GET_FULL_PATH_SELF(kcl_self); +- *argv=kcl_self; ++#ifdef DISABLE_ASLR ++ disable_aslr(argc,argv,envp); ++#endif ++ ++#include "cstack.h" ++ ++ kcl_self=*argv; + + vs_top = vs_base = vs_org; + ihs_top = ihs_org-1; + bds_top = bds_org-1; + frs_top = frs_org-1; + +-#if defined(__APPLE__) +- disable_aslr(argc, argv, envp); +-#endif +- +-#include "cstack.h" +- + gcl_init_alloc(alloca(1)); + + setbuf(stdin, stdin_buf); +@@ -848,7 +822,7 @@ error(char *s) + printf("\nUnrecoverable error: %s.\n", s); + fflush(stdout); + #ifdef UNIX +- gcl_abort(); ++ do_gcl_abort(); + #endif + } + +--- gcl27-2.7.1.orig/o/nsocket.c ++++ gcl27-2.7.1/o/nsocket.c +@@ -61,7 +61,7 @@ + #endif + + #define VOID void +-#define ERROR_MESSAGE(msg) do{ emsg(msg); gcl_abort() ; } while(0) ++#define ERROR_MESSAGE(msg) do{ emsg(msg); do_gcl_abort() ; } while(0) + + #ifdef STAND + +--- gcl27-2.7.1.orig/o/num_rand.c ++++ gcl27-2.7.1/o/num_rand.c +@@ -79,7 +79,7 @@ rando(object x, object rs) { + + + #ifdef UNIX +-#define RS_DEF_INIT time(0) ++#define RS_DEF_INIT ({char *e=getenv("SOURCE_DATE_EPOCH");e ? strtoul(e,NULL,10) : time(0);}) + #else + #define RS_DEF_INIT 0 + #endif +--- gcl27-2.7.1.orig/o/save.c ++++ gcl27-2.7.1/o/save.c +@@ -1,4 +1,6 @@ + /* Copyright (C) 2024 Camm Maguire */ ++#define NO_PRELINK_UNEXEC_DIVERSION ++ + #ifndef FIRSTWORD + #include "include.h" + #endif +@@ -13,25 +15,76 @@ memory_save(char *original_file, char *s + unexec(save_file,original_file,0,0,0); + } + +-#ifdef USE_CLEANUP +-extern void _cleanup(); +-#endif +- + LFD(siLsave)(void) { + + extern char *kcl_self; ++ extern void *shared_lib_start; ++ extern jmp_buf gmp_jmp; + + check_arg(1); + ++ memset(FN1,0,sizeof(FN1)); ++ coerce_to_filename(vs_base[0], FN1); ++ ++ close_dlopen_list(); ++ frs_top=frs_org-1; + gcl_cleanup(1); + +- coerce_to_filename(vs_base[0], FN1); ++ /*FIXME clean this up when done*/ ++ ++ set_global_env_defaults(); ++ shared_lib_start=NULL; ++ memset(gmp_jmp,0,sizeof(gmp_jmp)); ++ memset(frs_org,0,(frs_limit-frs_org)*sizeof(*frs_org)); ++ memset(bds_org,0,(bds_limit-bds_org)*sizeof(*bds_org)); ++ memset(ihs_org,0,(ihs_limit-ihs_org)*sizeof(*ihs_org)); ++ memset(vs_org,0,(vs_limit-vs_org)*sizeof(*vs_org)); ++ { ++#if !defined(__APPLE__) ++ extern char **__environ; ++#endif ++ extern FILE *rl_instream; ++ extern char *rl_line_buffer; ++ extern void clear_eval_vec(void); + ++#if !defined(__APPLE__) ++ __environ=NULL; ++#endif ++ rl_instream=NULL; ++ rl_readline_name=NULL; ++ rl_line_buffer=NULL; ++ rl_completion_entry_function=NULL; ++ stdin=NULL; ++ stdout=NULL; ++ stderr=NULL; ++ clear_eval_vec(); ++ cs_limit=NULL; ++ cs_base=NULL; ++ cs_org=NULL; ++ memset(FN2,0,sizeof(FN2)); ++ memset(FN3,0,sizeof(FN3)); ++ memset(FN4,0,sizeof(FN4)); ++ memset(FN5,0,sizeof(FN5)); ++ ENVP=NULL; ++ ARGV=NULL; ++ ARGC=0; ++ my_stdin=NULL; ++ my_stdout=NULL; ++ my_stderr=NULL; ++ my_rl_readline_name_ptr=NULL; ++ my_rl_completion_entry_function_ptr=NULL; ++ ++ } ++ ++ { ++ void *v=kcl_self; ++ kcl_self=NULL; + #ifdef MEMORY_SAVE +- MEMORY_SAVE(kcl_self,FN1); ++ MEMORY_SAVE(v,FN1); + #else +- memory_save(kcl_self, FN1); +-#endif ++ memory_save(v, FN1); ++#endif ++ } + + /* no return */ + exit(0); +--- gcl27-2.7.1.orig/o/sgbc.c ++++ gcl27-2.7.1/o/sgbc.c +@@ -147,7 +147,8 @@ sgc_mark_phase(void) { + } + #endif + +- mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully); ++ if (!saving_system) ++ mark_c_stack(0,N_RECURSION_REQD,mark_stack_carefully); + + } + +--- gcl27-2.7.1.orig/o/unexmacosx.c ++++ gcl27-2.7.1/o/unexmacosx.c +@@ -864,7 +864,6 @@ typedef struct { + typedef struct { + uint32_t magic; /* 0xfade0b01 (CSMAGIC_BLOBWRAPPER) */ + uint32_t length; /* Total length of header + CMS data */ +- uint8_t zero[18040-30]; + } CS_BlobWrapper; + + #include +@@ -927,7 +926,7 @@ dump_code_signature(struct segment_comma + mpwrite(&mh,sizeof(mh),0); + + sb.magic=htonl(0xfade0cc0); +- sb.length=htonl(ldc.datasize-sizeof(cms.zero)-2); ++ sb.length=htonl(ldc.datasize); + sb.count=htonl(sizeof(bi)/sizeof(*bi)); + mwrite(&sb,sizeof(sb)); + +@@ -1050,10 +1049,8 @@ dump_it () { + + } else if (strncmp (scp->segname, "__HEAP", 16) == 0) { + +- extern char *data_start; + struct section *sectp = (struct section *) (scp + 1); + unsigned long header_offset=curr_header_offset + sizeof (struct segment_command); +- extern int in_pre_gcl;/*support libboot.so*/ + + if (core_end-data_start>heap_vmsize) + unexec_error ("data exceeds __HEAP vmsize"); +--- gcl27-2.7.1.orig/o/unixfsys.c ++++ gcl27-2.7.1/o/unixfsys.c +@@ -289,7 +289,11 @@ DEFUN("READLINKAT",object,fSreadlinkat,S + + DEFUN("GETCWD",object,fSgetcwd,SI,0,0,NONE,OO,OO,OO,OO,(void),"") { + +- massert(getcwd(FN1,sizeof(FN1))); ++ if (NO_TRUENAME) ++ massert(snprintf(FN1,sizeof(FN1),"./")>=0); ++ else ++ massert(getcwd(FN1,sizeof(FN1))); ++ + RETURN1(make_simple_string(FN1)); + + } +--- gcl27-2.7.1.orig/o/unixsave.c ++++ gcl27-2.7.1/o/unixsave.c +@@ -24,6 +24,8 @@ Foundation, 675 Mass Ave, Cambridge, MA + unixsave.c + */ + ++#define NO_PRELINK_UNEXEC_DIVERSION ++ + #define IN_UNIXSAVE + #ifndef FIRSTWORD + #include "include.h" +@@ -146,7 +148,8 @@ LFD(Lsave)() { + check_arg(1); + check_type_or_pathname_string_symbol_stream(&vs_base[0]); + coerce_to_filename(vs_base[0], FN1); +- ++ ++ shared_lib_start=NULL; + _cleanup(); + + memory_save(kcl_self, FN1); +--- gcl27-2.7.1.orig/o/usig2.c ++++ gcl27-2.7.1/o/usig2.c +@@ -273,7 +273,7 @@ before_interrupt(struct save_for_interru + #include "usig2_aux.c" + + if (pp-p->save_objects>=(sizeof(p->save_objects)/sizeof(void *))) +- gcl_abort(); ++ do_gcl_abort(); + + } + diff --git a/debian/patches/Version_2_7_2pre31 b/debian/patches/Version_2_7_2pre31 new file mode 100644 index 00000000..302c2f41 --- /dev/null +++ b/debian/patches/Version_2_7_2pre31 @@ -0,0 +1,70 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jun, 23 2026 22:39:34 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre30" ++"Version_2_7_2pre31" +--- gcl27-2.7.1.orig/h/pool.h ++++ gcl27-2.7.1/h/pool.h +@@ -111,16 +111,20 @@ open_pool(void) { + void + close_pool(void) { + ++ static int no_recur; ++ + #ifndef NO_FILE_LOCKING +- if (pool!=-1) { ++ if (pool!=-1 && !no_recur) { ++ no_recur=1; + f.l_type=F_WRLCK; + if (!fcntl(pool,F_SETLK,&f)) + massert(!unlink(gcl_pool) || errno==ENOENT); + register_pool(-1); +- massert(!close(pool)); + massert(!munmap(Pool,sizeof(struct pool))); ++ massert(!close(pool)); + pool=-1; + memset(gcl_pool,0,sizeof(gcl_pool)); ++ no_recur=0; + } + #endif + +--- gcl27-2.7.1.orig/o/disable_aslr.c ++++ gcl27-2.7.1/o/disable_aslr.c +@@ -132,6 +132,14 @@ disable_aslr(int argc, char **argv, char + } + + } ++ ++#else /*Unneeded on Hurd, cygwin/mingw via coff header flag*/ ++ ++void ++disable_aslr(int argc, char **argv, char **envp) { ++ return; ++} ++ + #endif + + #endif diff --git a/debian/patches/Version_2_7_2pre32 b/debian/patches/Version_2_7_2pre32 new file mode 100644 index 00000000..015d9821 --- /dev/null +++ b/debian/patches/Version_2_7_2pre32 @@ -0,0 +1,181 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jun, 24 2026 17:33:56 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre31" ++"Version_2_7_2pre32" +--- gcl27-2.7.1.orig/h/pool.h ++++ gcl27-2.7.1/h/pool.h +@@ -120,9 +120,9 @@ close_pool(void) { + if (!fcntl(pool,F_SETLK,&f)) + massert(!unlink(gcl_pool) || errno==ENOENT); + register_pool(-1); +- massert(!munmap(Pool,sizeof(struct pool))); + massert(!close(pool)); + pool=-1; ++ massert(!munmap(Pool,sizeof(struct pool))); + memset(gcl_pool,0,sizeof(gcl_pool)); + no_recur=0; + } +--- gcl27-2.7.1.orig/lsp/gcl_top.lsp ++++ gcl27-2.7.1/lsp/gcl_top.lsp +@@ -113,14 +113,14 @@ + (coerce-to-package (eval (read)))))) + ;(declaim (inline coerce-to-package)) + +-(defun reset-lib-syms nil ++(defun reset-lib-syms (on) + (when (find-package "LIB") + (do-external-symbols + (p "LIB") +- (setf (symbol-value p) (dlopen (lib-name p))) ++ (setf (symbol-value p) (when on (dlopen (lib-name p)))) + (do-external-symbols + (s p) +- (setf (symbol-value s) (dlsym (symbol-value p) s))))) ++ (setf (symbol-value s) (when on (dlsym (symbol-value p) s)))))) + (cfdl)) + + (defun top-level1 () +@@ -698,7 +698,7 @@ First directory is checked for first nam + + (defun set-up-top-level (&aux (i (argc)) tem) + (declare (fixnum i)) +- (reset-lib-syms) ++ (reset-lib-syms t) + (setq *tmp-dir* (get-temp-dir) *current-directory* (current-directory-namestring)) + (when *cc* ;raw-image init complete + (setq *current-directory* (pathname *current-directory*) +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -1696,18 +1696,28 @@ static char *baby_malloc(n) + /* #endif */ + + bool writable_malloc=0; ++static void *malloc_pre_main_base,*malloc_pre_main_ptr,*malloc_pre_main_end; + + static void * + malloc_internal(size_t size) { + + if (!msbrk_initialized()) { + static bool recursive_malloc; +- if (recursive_malloc) +- error("Bad malloc"); ++ unsigned long s=PAGESIZE; ++ ++ massert(!recursive_malloc); + recursive_malloc=1; +- gcl_init_alloc(&size); ++ if (!malloc_pre_main_base) { ++ massert((malloc_pre_main_base=mmap(NULL,s,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0))!=(void *)-1); ++ malloc_pre_main_ptr=malloc_pre_main_base; ++ malloc_pre_main_end=malloc_pre_main_base+s; ++ } ++ massert(size<=(malloc_pre_main_end-malloc_pre_main_ptr)); ++ malloc_pre_main_ptr+=size; + recursive_malloc=0; +- } ++ return malloc_pre_main_ptr-size; ++ } else ++ malloc_pre_main_base=malloc_pre_main_ptr=malloc_pre_main_end=NULL; + + CHECK_INTERRUPT; + +@@ -1732,7 +1742,7 @@ free(void *ptr) { + + object *p,pp; + +- if (ptr == 0) ++ if (ptr == 0 || ptr < data_start || ptr >= core_end) + return; + + for (p = &malloc_list,pp=*p; pp && !endp(pp); p = &((pp)->c.c_cdr),pp=pp->c.c_cdr) +--- gcl27-2.7.1.orig/o/cfun.c ++++ gcl27-2.7.1/o/cfun.c +@@ -49,6 +49,8 @@ make_cfun(void (*self)(), object name, o + + } + ++DEF_ORDINARY("RESET-LIB-SYMS",sSreset_lib_syms,SI,""); ++ + DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,OO,OO,OO,OO,(void),"") { + + struct typemanager *tm=tm_of(t_cfdata); +--- gcl27-2.7.1.orig/o/disable_aslr.c ++++ gcl27-2.7.1/o/disable_aslr.c +@@ -91,7 +91,7 @@ void + disable_aslr(int argc, char **argv, char **envp) { + + long pers; +- long flag = ADDR_NO_RANDOMIZE|(sizeof(flag)==4 ? ADDR_LIMIT_3GB : 0); ++ long flag = ADDR_NO_RANDOMIZE|(sizeof(flag)==4 ? ADDR_COMPAT_LAYOUT : 0); + + massert((pers=personality(-1))!=-1); + +--- gcl27-2.7.1.orig/o/gbc.c ++++ gcl27-2.7.1/o/gbc.c +@@ -1079,8 +1079,11 @@ GBC(enum type t) { + if (tm->tm_type==v->type) + for (x=pagetochar(page(v)),j=tm->tm_nppage;j--;x+=tm->tm_size) { + object o=x; +- if (type_of(o)==t_stream && !is_free(o) && o->sm.sm_fp && o->sm.sm_fp!=stdin && o->sm.sm_fp!=stdout && o->sm.sm_fp!=stderr) +- close_stream(o); ++ if (type_of(o)==t_stream && !is_free(o) && o->sm.sm_fp) { ++ if (o->sm.sm_fp!=stdin && o->sm.sm_fp!=stdout && o->sm.sm_fp!=stderr) ++ close_stream(o); ++ o->sm.sm_fp=NULL; ++ } + } + + gc_time = -1; +--- gcl27-2.7.1.orig/o/read.d ++++ gcl27-2.7.1/o/read.d +@@ -1637,6 +1637,9 @@ Lsharp_dollar_reader() + tx=type_of(x); + vs_base[0] = alloc_object(t_random); + init_gmp_rnd_state(&vs_base[0]->rnd.rnd_state); ++#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) ++ vs_base[0]->rnd.rnd_state._mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed; ++#endif + if (tx!=t_fixnum || fix(x)) { + if (tx==t_fixnum) { + if (vs_base[0]->rnd.rnd_state._mp_seed->_mp_size!=1) +--- gcl27-2.7.1.orig/o/save.c ++++ gcl27-2.7.1/o/save.c +@@ -20,12 +20,14 @@ LFD(siLsave)(void) { + extern char *kcl_self; + extern void *shared_lib_start; + extern jmp_buf gmp_jmp; ++ extern object sSreset_lib_syms; + + check_arg(1); + + memset(FN1,0,sizeof(FN1)); + coerce_to_filename(vs_base[0], FN1); + ++ ifuncall1(sSreset_lib_syms,Cnil); + close_dlopen_list(); + frs_top=frs_org-1; + gcl_cleanup(1); diff --git a/debian/patches/Version_2_7_2pre33 b/debian/patches/Version_2_7_2pre33 new file mode 100644 index 00000000..6df85921 --- /dev/null +++ b/debian/patches/Version_2_7_2pre33 @@ -0,0 +1,625 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jun, 27 2026 12:16:43 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmain.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpmain.lsp +@@ -555,8 +555,8 @@ Cannot compile ~a.~%" (namestring (merge + (with-open-file (st hn) + (si::copy-stream st *standard-output*)) + (when *disassemble-objdump* +- (si::copy-stream (open (concatenate 'string "|objdump --source " (namestring on))) +- *standard-output*)) ++ (with-open-file (s (concatenate 'string "|objdump --source " (namestring on))) ++ (si::copy-stream s *standard-output*))) + (delete-file cn) + (delete-file dn) + (delete-file hn) +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -10369,11 +10369,7 @@ printf '%s\n' "$as_me: max log text star + + # Need to get over default cstack and related maps between 0x1000000 and 0x2000000 + if test "$use" == "386-gnu" || test "$use" == "amd64-gnu" ; then +- if test "$use" == "386-gnu" ; then +- q=24; +- else +- q=23; +- fi ++ q=24; + if test $min -lt $q && test $q -lt $max && test $q -lt 30; then + min=$q + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: min log text start increased to $min over c stack address" >&5 +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -1355,11 +1355,7 @@ if test "`cat gcl.script | wc -l`" != "0 + + # Need to get over default cstack and related maps between 0x1000000 and 0x2000000 + if test "$use" == "386-gnu" || test "$use" == "amd64-gnu" ; then +- if test "$use" == "386-gnu" ; then +- q=24; +- else +- q=23; +- fi ++ q=24; + if test $min -lt $q && test $q -lt $max && test $q -lt 30; then + min=$q + AC_MSG_NOTICE([min log text start increased to $min over c stack address]) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre32" ++"Version_2_7_2pre33" +--- gcl27-2.7.1.orig/h/amd64-gnu.h ++++ gcl27-2.7.1/h/amd64-gnu.h +@@ -1,10 +1,5 @@ + #include "linux.h" + +-#define ADDITIONAL_FEATURES \ +- ADD_FEATURE("BSD386"); \ +- ADD_FEATURE("MC68020") +- +- + #define I386 + #define SGC + +@@ -21,3 +16,7 @@ + + #undef HAVE_D_TYPE /*FIXME defined, but not implemented in readdir*/ + /* #define NO_FILE_LOCKING */ /*FIXME*/ ++ ++#define ADDITIONAL_FEATURES ADD_FEATURE("NO-SIGFPE") ++ ++#undef HAVE_FEENABLEEXCEPT +--- gcl27-2.7.1.orig/h/notcomp.h ++++ gcl27-2.7.1/h/notcomp.h +@@ -20,7 +20,7 @@ EXTER int interrupt_flag,interrupt_enabl + /* void sigint(),sigalrm(); */ + + +-EXTER bool gc_enabled, saving_system; ++EXTER bool gc_enabled, saving_system,leak_malloc_p; + + EXTER object lisp_package,user_package; + EXTER char *core_end; +@@ -28,7 +28,10 @@ EXTER int catch_fatal; + EXTER long real_maxpage; + EXTER char *this_lisp; + +-EXTER char stdin_buf[],stdout_buf[]; ++#define EXTRA_BUFSIZE 8 ++EXTER char stdin_buf[BUFSIZ + EXTRA_BUFSIZE]; ++EXTER char stdout_buf[BUFSIZ + EXTRA_BUFSIZE]; ++EXTER char stderr_buf[BUFSIZ + EXTRA_BUFSIZE]; + + EXTER object user_package; + +--- gcl27-2.7.1.orig/h/pool.h ++++ gcl27-2.7.1/h/pool.h +@@ -123,6 +123,7 @@ close_pool(void) { + massert(!close(pool)); + pool=-1; + massert(!munmap(Pool,sizeof(struct pool))); ++ Pool=NULL; + memset(gcl_pool,0,sizeof(gcl_pool)); + no_recur=0; + } +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -1347,7 +1347,7 @@ object Icall_gen_error_handler(object,ob + + void * gcl_gmp_alloc(size_t); + +-void init_gmp_rnd_state(__gmp_randstate_struct *); ++void init_gmp_rnd_state(__gmp_randstate_struct *,object); + + int my_plt(const char *,unsigned long *); + +@@ -1483,12 +1483,6 @@ fixnum elt_size(fixnum); + + fixnum elt_mode(fixnum); + +-void init_gmp_rnd_state(__gmp_randstate_struct *); +- +-/* void set_sgc_bit(struct pageinfo *,void *); */ +- +-void reinit_gmp(void); +- + object mod(object,object); + + void intdivrem(object,object,fixnum,object *,object *); +@@ -1679,3 +1673,5 @@ void *mdlopen(const char *,int); + void close_dlopen_list(void); + void set_global_env_defaults(void); + void disable_aslr(int,char **,char **); ++void set_leak_malloc_on(void); ++void set_leak_malloc_off(void); +--- gcl27-2.7.1.orig/lsp/gcl_fpe.lsp ++++ gcl27-2.7.1/lsp/gcl_fpe.lsp +@@ -139,7 +139,8 @@ + (feclearexcept x) + (floating-point-error x (list* fun "unknown" name args) 0)))) + (defun break-on-floating-point-exceptions +- (&key suspend no-flush ++ (&rest all ++ &key suspend no-flush + ,@(mapcar (lambda (x) `(,(car x) (logtest ,(caddr x) fpe-enabled))) +fe-list+) + &aux r #+no-sigfpe(x (fetestexcept fpe-set))) + (fe-enable +@@ -154,7 +155,9 @@ + (0))) + +fe-list+)))))) + #+no-sigfpe +- (unless (or no-flush (zerop x)) (floating-point-error x 0 0)) ++ (unless (or no-flush (zerop x)) ++ (let ((y 'break-on-floating-point-exceptions)) ++ (floating-point-error x (list (symbol-function y) "unknown" y all) 0))) + r)) + + (defun subclasses (class) +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -1696,28 +1696,76 @@ static char *baby_malloc(n) + /* #endif */ + + bool writable_malloc=0; ++bool leak_malloc_p=1; + static void *malloc_pre_main_base,*malloc_pre_main_ptr,*malloc_pre_main_end; + ++void ++set_leak_malloc_on(void) { ++ ++ leak_malloc_p=1; ++ ++} ++ ++void ++set_leak_malloc_off(void) { ++ ++ leak_malloc_p=0; ++ malloc_pre_main_base=malloc_pre_main_ptr=malloc_pre_main_end=NULL; ++ ++} ++ ++static void * ++leak_malloc(size_t size) { ++ ++ unsigned long s=1<<14; ++ ++ if (!malloc_pre_main_base) { ++ massert((malloc_pre_main_base=mmap(NULL,s,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0))!=(void *)-1); ++ malloc_pre_main_ptr=malloc_pre_main_base; ++ malloc_pre_main_end=malloc_pre_main_base+s; ++ } ++ ++ size=(size+sizeof(max_align_t)-1)&~(sizeof(max_align_t)-1); ++ massert(size<=(malloc_pre_main_end-malloc_pre_main_ptr)); ++ ++ malloc_pre_main_ptr+=size; ++ ++ return malloc_pre_main_ptr-size; ++ ++} ++ ++#define MALLOC_RETURN(_v) ({void *v=_v;recursive_malloc=0;return v;}) ++ + static void * + malloc_internal(size_t size) { + +- if (!msbrk_initialized()) { +- static bool recursive_malloc; +- unsigned long s=PAGESIZE; +- +- massert(!recursive_malloc); +- recursive_malloc=1; +- if (!malloc_pre_main_base) { +- massert((malloc_pre_main_base=mmap(NULL,s,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0))!=(void *)-1); +- malloc_pre_main_ptr=malloc_pre_main_base; +- malloc_pre_main_end=malloc_pre_main_base+s; +- } +- massert(size<=(malloc_pre_main_end-malloc_pre_main_ptr)); +- malloc_pre_main_ptr+=size; +- recursive_malloc=0; +- return malloc_pre_main_ptr-size; +- } else +- malloc_pre_main_base=malloc_pre_main_ptr=malloc_pre_main_end=NULL; ++ static bool recursive_malloc; ++ ++ massert(!recursive_malloc); ++ recursive_malloc=1; ++ ++ /*GCL originally strove to capture all malloc memory in its heap to avoid interference ++ with its heap growth in limited address range contexts. While static linking is still ++ possible, in most environments there will be external shared libraries in the address ++ space, and this is beneficial from a system performance perspective in any case. GCL ++ goes to significant lengths to detect mmap_base and move it out of the way where possible ++ to allow for maximum contiguous heap growth (e.g. just under 3Gb on 32bit systems at ++ present). Linking against libX11 at a minimum will call malloc before main via ++ constructors in that library. Likewise dlopen of GCL's libboot.so will malloc early, ++ but after main. Such calls as these have no effective cleanup routines available before ++ exit, and furthermore write aslr random data therein foiling reproducibility if saved ++ in the heap. Such would be useless dead space on reexec if stored there in any case. ++ Traditionally we called gcl_init_alloc here, and this works, but it seems more advisable ++ to ring fence the aslr/shared library world into its own domain and store such mallocs ++ outside the heap in non-reclaimable memory (ie. leaked). At present leak_malloc is only ++ used for the dlopen of libboot.so which is critical for a reproducible build, but wrapping ++ all dlopen thus may be advisable someday. Right now the image dumps from raw image ++ runs, and from saved images with GCL_NO_TRUENAME set and in which the run just loads ++ .o files and saves are reproducible, which is sufficient for Debian gcl dependencies: ++ hol88,maxima,acl2,fricas and axiom. CM 20260625*/ ++ ++ if (leak_malloc_p) ++ MALLOC_RETURN(leak_malloc(size)); + + CHECK_INTERRUPT; + +@@ -1725,7 +1773,7 @@ malloc_internal(size_t size) { + malloc_list->c.c_car->st.st_self = alloc_contblock(size); + malloc_list->c.c_car->st.st_writable=writable_malloc; + +- return(malloc_list->c.c_car->st.st_self); ++ MALLOC_RETURN(malloc_list->c.c_car->st.st_self); + + } + +@@ -1742,7 +1790,7 @@ free(void *ptr) { + + object *p,pp; + +- if (ptr == 0 || ptr < data_start || ptr >= core_end) ++ if (ptr == 0 || ptr < data_start || ptr >= (void *)core_end) + return; + + for (p = &malloc_list,pp=*p; pp && !endp(pp); p = &((pp)->c.c_cdr),pp=pp->c.c_cdr) +--- gcl27-2.7.1.orig/o/cfun.c ++++ gcl27-2.7.1/o/cfun.c +@@ -86,13 +86,23 @@ close_dlopen_list(void) { + + void * + mdlopen(const char *name,int flags) { +- void *v=dlopen(name,flags); ++ ++ void *v; ++ char *err; ++ ++ set_leak_malloc_on(); ++ v=dlopen(name,flags); ++ set_leak_malloc_off(); ++ if ((err=dlerror())) ++ FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err)); + if (name) { + object x=sSAdlopen_handlesA->s.s_dbind; + for (;x!=Cnil && fix(x->c.c_car)!=(fixnum)v;x=x->c.c_cdr); + if (x==Cnil) + sSAdlopen_handlesA->s.s_dbind=MMcons(make_fixnum((fixnum)v),sSAdlopen_handlesA->s.s_dbind); ++ update_real_maxpage(); + } ++ + return v; + } + +@@ -145,19 +155,11 @@ DEFUN("DLADDR",object,fSdladdr,SI,2,2,NO + + DEFUN("DLOPEN",object,fSdlopen,SI,1,1,NONE,OO,OO,OO,OO,(object name),"") { + +- char *err; +- void *v; +- + dlerror(); + name=coerce_to_string(name); + massert(snprintf(FN1,sizeof(FN1),"%-.*s",VLEN(name),name->st.st_self)>=0); +- v=dlopen(strlen(FN1) ? FN1 : 0,RTLD_LAZY|RTLD_GLOBAL); +- if ((err=dlerror())) +- FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err)); + +- update_real_maxpage(); +- +- RETURN1(make_fixnum((fixnum)v)); ++ RETURN1(make_fixnum((fixnum)mdlopen(strlen(FN1) ? FN1 : 0,RTLD_LAZY|RTLD_GLOBAL))); + + } + +--- gcl27-2.7.1.orig/o/error.c ++++ gcl27-2.7.1/o/error.c +@@ -32,6 +32,13 @@ object siSuniversal_error_handler; + + object sSterminal_interrupt; + ++#if defined(__APPLE__) ++char * ++strerrordesc_np(int errnum) { ++ return (errnum >= 0 && errnum < sys_nerr) ? sys_errlist[errnum] : "Unknown error"; ++} ++#endif ++ + void + assert_error(const char *a,unsigned l,const char *f,const char *n) { + +@@ -40,7 +47,7 @@ assert_error(const char *a,unsigned l,co + make_simple_string(a),make_fixnum(l), + make_simple_string(f),make_simple_string(n),make_simple_string(strerror(errno))); + else { +- emsg("The assertion %s on line %d of %s in function %s failed: %s",a,l,f,n,strerror(errno)); ++ emsg("The assertion %s on line %d of %s in function %s failed: %s\n",a,l,f,n,strerrordesc_np(errno)); + do_gcl_abort(); + } + +--- gcl27-2.7.1.orig/o/gmp_big.c ++++ gcl27-2.7.1/o/gmp_big.c +@@ -99,11 +99,9 @@ gcl_init_big1(void) { + mp_set_memory_functions( gcl_gmp_alloc,gcl_gmp_realloc,gcl_gmp_free); + jmp_gmp=0; + +-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) + Mersenne_Twister_Generator_Noseed.b=__gmp_randget_mt; + Mersenne_Twister_Generator_Noseed.c=__gmp_randclear_mt; + Mersenne_Twister_Generator_Noseed.d=__gmp_randiset_mt; +-#endif + + } + +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -68,11 +68,6 @@ bool saving_system=FALSE; + + char *system_directory; + +-#define EXTRA_BUFSIZE 8 +-char stdin_buf[BUFSIZ + EXTRA_BUFSIZE]; +-char stdout_buf[BUFSIZ + EXTRA_BUFSIZE]; +-char stderr_buf[BUFSIZ + EXTRA_BUFSIZE]; +- + #include "stacks.h" + + int debug; /* debug switch */ +@@ -569,42 +564,47 @@ dir_name_length(const char *s) { + } + + int initializing_boot=0; ++int in_pre_gcl=0; + + void + init_boot(void) { + +- char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self; ++ if (raw_image||in_pre_gcl) { ++ ++ char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self; + #ifdef USE_LIBBOOT +- void *v,*q; ++ void *v,*q; + #endif +- char *z,*s="libboot.so"; +- size_t m=sysd ? strlen(sysd) : dir_name_length(kcl_self),n=m+strlen(s)+1; +- object omp=sSAoptimize_maximum_pagesA->s.s_dbind; +- +- sSAoptimize_maximum_pagesA->s.s_dbind=Cnil; +- z=alloca(n); +- snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s); ++ char *z,*s="libboot.so"; ++ size_t m=sysd ? strlen(sysd) : dir_name_length(kcl_self),n=m+strlen(s)+1; ++ object omp=sSAoptimize_maximum_pagesA->s.s_dbind; ++ ++ sSAoptimize_maximum_pagesA->s.s_dbind=Cnil; ++ z=alloca(n); ++ snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s); + #ifdef USE_LIBBOOT +- if (!(v=mdlopen(z,RTLD_LAZY|RTLD_GLOBAL))) +- printf("%s\n",dlerror()); +- if (!(q=dlsym(v,"gcl_init_boot"))) +- printf("%s\n",dlerror()); ++ if (!(v=mdlopen(z,RTLD_LAZY|RTLD_GLOBAL))) ++ printf("%s\n",dlerror()); ++ if (!(q=dlsym(v,"gcl_init_boot"))) ++ printf("%s\n",dlerror()); + #endif +- initializing_boot=1; ++ initializing_boot=1; + #ifndef USE_LIBBOOT +- { +- extern void gcl_init_boot(void); +- gcl_init_boot(); +- } ++ { ++ extern void gcl_init_boot(void); ++ gcl_init_boot(); ++ } + #else +- ((void (*)())q)(); ++ ((void (*)())q)(); + #endif +- initializing_boot=0; +- sSAoptimize_maximum_pagesA->s.s_dbind=omp; ++ initializing_boot=0; ++ sSAoptimize_maximum_pagesA->s.s_dbind=omp; ++ } ++ ++ set_leak_malloc_off(); + + } + +-int in_pre_gcl=0; + object def_env1[2]={(object)1,Cnil},*def_env=def_env1+1; + object src_env1[2]={(object)1,Cnil},*src_env=src_env1+1; + +@@ -732,7 +732,7 @@ main(int argc, char **argv, char **envp) + ARGC = argc; + ARGV = argv; + ENVP = envp; +- ++ + if (raw_image) { + + printf("GCL (GNU Common Lisp) %s %ld pages\n",LISP_IMPLEMENTATION_VERSION,real_maxpage); +@@ -761,7 +761,7 @@ main(int argc, char **argv, char **envp) + __stack_chk_guard=random_ulong();/*Cannot be safely set inside a function which returns*/ + #endif + +- if (in_pre_gcl) init_boot(); ++ init_boot(); + + } + +--- gcl27-2.7.1.orig/o/num_rand.c ++++ gcl27-2.7.1/o/num_rand.c +@@ -84,7 +84,6 @@ rando(object x, object rs) { + #define RS_DEF_INIT 0 + #endif + +-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) + extern void * (*gcl_gmp_allocfun) (size_t); + static void * (*old_gcl_gmp_allocfun) (size_t); + static void * trap_result; +@@ -103,52 +102,44 @@ trap_gcl_gmp_allocfun(size_t size){ + } + + } +-#endif + + void + reinit_gmp() { + +-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) + Mersenne_Twister_Generator_Noseed.b=__gmp_randget_mt; + Mersenne_Twister_Generator_Noseed.c=__gmp_randclear_mt; + Mersenne_Twister_Generator_Noseed.d=__gmp_randiset_mt; +-#endif + + } + + void +-init_gmp_rnd_state(__gmp_randstate_struct *x) { ++init_gmp_rnd_state(__gmp_randstate_struct *x,object rs) { + + static int n; + + bzero(x,sizeof(*x)); + +-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) +-/* if (!trap_size) { */ + old_gcl_gmp_allocfun=gcl_gmp_allocfun; + gcl_gmp_allocfun=trap_gcl_gmp_allocfun; +-/* } */ +-#endif + gmp_randinit_default(x); +-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) + if (!n) { + + if (x->_mp_seed->_mp_d!=trap_result) + FEerror("Unknown pointer in rnd_state!",0); +-/* #ifndef __hppa__ /\*FIXME*\/ */ +-/* if (((gmp_randfnptr_t *)x->_mp_algdata._mp_lc)->b!=Mersenne_Twister_Generator_Noseed.b || */ +-/* ((gmp_randfnptr_t *)x->_mp_algdata._mp_lc)->c!=Mersenne_Twister_Generator_Noseed.c || */ +-/* ((gmp_randfnptr_t *)x->_mp_algdata._mp_lc)->d!=Mersenne_Twister_Generator_Noseed.d) */ +-/* FEerror("Unknown pointer data in rnd_state!",0); */ +-/* #endif */ + + n=1; + + } + gcl_gmp_allocfun=old_gcl_gmp_allocfun; + x->_mp_seed->_mp_alloc=x->_mp_seed->_mp_size=trap_size; +-#endif +- ++ ++ if (rs == Ct) ++ gmp_randseed_ui(x,RS_DEF_INIT); ++ else if (type_of(rs)==t_random) ++ memcpy(x->_mp_seed->_mp_d,rs->rnd.rnd_state._mp_seed->_mp_d, ++ rs->rnd.rnd_state._mp_seed->_mp_alloc*sizeof(*x->_mp_seed->_mp_d)); ++ ++ x->_mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed; + + } + +@@ -168,18 +159,8 @@ make_random_state(object rs) { + } + + z = alloc_object(t_random); +- init_gmp_rnd_state(&z->rnd.rnd_state); ++ init_gmp_rnd_state(&z->rnd.rnd_state,rs); + +- +- if (rs == Ct) +- gmp_randseed_ui(&z->rnd.rnd_state,RS_DEF_INIT); +- else +- memcpy(z->rnd.rnd_state._mp_seed->_mp_d,rs->rnd.rnd_state._mp_seed->_mp_d, +- rs->rnd.rnd_state._mp_seed->_mp_alloc*sizeof(*z->rnd.rnd_state._mp_seed->_mp_d)); +- +-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) +- z->rnd.rnd_state._mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed; +-#endif + return(z); + + } +--- gcl27-2.7.1.orig/o/read.d ++++ gcl27-2.7.1/o/read.d +@@ -1636,10 +1636,7 @@ Lsharp_dollar_reader() + x = read_object(vs_base[0]); + tx=type_of(x); + vs_base[0] = alloc_object(t_random); +- init_gmp_rnd_state(&vs_base[0]->rnd.rnd_state); +-#if __GNU_MP_VERSION > 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR >= 2) +- vs_base[0]->rnd.rnd_state._mp_algdata._mp_lc=&Mersenne_Twister_Generator_Noseed; +-#endif ++ init_gmp_rnd_state(&vs_base[0]->rnd.rnd_state,Cnil); + if (tx!=t_fixnum || fix(x)) { + if (tx==t_fixnum) { + if (vs_base[0]->rnd.rnd_state._mp_seed->_mp_size!=1) +--- gcl27-2.7.1.orig/o/save.c ++++ gcl27-2.7.1/o/save.c +@@ -34,9 +34,15 @@ LFD(siLsave)(void) { + + /*FIXME clean this up when done*/ + ++ set_leak_malloc_on(); ++ + set_global_env_defaults(); + shared_lib_start=NULL; ++ memset(&fcall,0,sizeof(fcall)); + memset(gmp_jmp,0,sizeof(gmp_jmp)); ++ memset(stdin_buf,0,sizeof(stdin_buf)); ++ memset(stdout_buf,0,sizeof(stdout_buf)); ++ memset(stderr_buf,0,sizeof(stderr_buf)); + memset(frs_org,0,(frs_limit-frs_org)*sizeof(*frs_org)); + memset(bds_org,0,(bds_limit-bds_org)*sizeof(*bds_org)); + memset(ihs_org,0,(ihs_limit-ihs_org)*sizeof(*ihs_org)); +--- gcl27-2.7.1.orig/o/usig.c ++++ gcl27-2.7.1/o/usig.c +@@ -155,7 +155,7 @@ DEFUN("FEENABLEEXCEPT",object,fSfeenable + + x=feenableexcept(x); + +-#elif defined(__x86_64__) || defined(__i386__) ++#elif (defined(__x86_64__) && !defined(__gnu_hurd__)) || defined(__i386__) + #define ASM __asm__ __volatile__ + { + volatile unsigned short s=0; +@@ -194,7 +194,7 @@ DEFUN("FEDISABLEEXCEPT",object,fSfedisab + /* feclearexcept(FE_ALL_EXCEPT); */ + x=fedisableexcept(FE_ALL_EXCEPT); + +-#elif defined(__x86_64__) || defined(__i386__) ++#elif (defined(__x86_64__) && !defined(__gnu_hurd__)) || defined(__i386__) + #define ASM __asm__ __volatile__ + { + volatile unsigned int i=0; diff --git a/debian/patches/Version_2_7_2pre34 b/debian/patches/Version_2_7_2pre34 new file mode 100644 index 00000000..49e38cfe --- /dev/null +++ b/debian/patches/Version_2_7_2pre34 @@ -0,0 +1,50 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jun, 27 2026 17:46:15 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -7448,7 +7448,7 @@ if test ${enable_aslr+y} + then : + enableval=$enable_aslr; enable_aslr=$enableval + else case e in #( +- e) enable_asrl="yes" ;; ++ e) enable_aslr="yes" ;; + esac + fi + +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -287,7 +287,7 @@ add_args_to_cflags -fsigned-char -pipe + add_args_to_ldflags -no-pie -Wl,-z,relro # -Wl,-z,lazy + + AC_ARG_ENABLE([aslr],[ --disable-aslr will ensure reproducible builds and/or work around absent no-pie], +- [enable_aslr=$enableval],[enable_asrl="yes"]) ++ [enable_aslr=$enableval],[enable_aslr="yes"]) + + AC_MSG_CHECKING([whether aslr must be disabled due to absent -no-pie]) + if ! echo $LDFLAGS |grep -q -w '\-no\-pie'; then +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre33" ++"Version_2_7_2pre34" diff --git a/debian/patches/Version_2_7_2pre35 b/debian/patches/Version_2_7_2pre35 new file mode 100644 index 00000000..436fb35f --- /dev/null +++ b/debian/patches/Version_2_7_2pre35 @@ -0,0 +1,598 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jul, 05 2026 18:55:04 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +Bug-Debian: https://bugs.debian.org/1140970 +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -210,7 +210,7 @@ gcl_tk_gcltkaux_SOURCES=$(GCLTK_SRC) + gcl_tk_gcltkaux_CPPFLAGS=$(AM_CPPFLAGS) $(TK_INCLUDE) $(TCL_INCLUDE) $(TK_XINCLUDES) + gcl_tk_gcltkaux_LDADD=$(TK_LIB_SPEC) $(TCL_LIB_SPEC) + +-MY_DIRS=gcl0 gcl1 gcl2 gcl3 gcl mod_gcl0 mod_gcl pcl_gcl ansi_gcl ++MY_DIRS=gcl0 gcl1 gcl2 gcl3 gcl mod_gcl0 mod_gcl pcl_gcl ansi_gcl0 ansi_gcl + + L_STUBS=s sf c listlib predlib deftype typeof subtypep bit type typep typecase arraylib \ + seq seqlib bnum fle dl rm nr lr sym hash sharp \ +@@ -285,8 +285,9 @@ unixport/gcl_cmpnopt_%_gprof.lsp: unixpo + unixport/gcl_cmpnopt_pre_gcl.lsp: # FIXME necessary? + touch $@ + unixport/gcl_cmpnopt_%.lsp: unixport/lib%.a | unixport/% +- echo "(mapc (quote load) (directory \"$*/*.hsh\"))" \ +- "(compiler::dump-inl-hash \"$@\" t)" | $| ++ echo "(clrhash compiler::*inl-hash*)" \ ++ "(mapc (quote load) (directory \"$*/*.hsh\"))" \ ++ "(compiler::dump-inl-hash \"$@\")" | $| + + $(addprefix unixport/lib,$(addsuffix .a,pre_gcl $(MY_DIRS))): \ + unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o +@@ -306,9 +307,14 @@ $(addprefix unixport/lib,$(addsuffix .a, + unixport/lib%.a: $(addprefix %/,$(L_OBJS)) + unixport/libmod_gcl0.a unixport/libmod_gcl.a:\ + unixport/lib%.a: $(addprefix %/,$(MOD_OBJS)) $(L_FOBJS) $(X_LIB) +-unixport/libgcl.a unixport/libmod_gcl.a: unixport/lib%.a: %/recompile + unixport/libpcl_gcl.a: $(PCL_FOBJS) +-unixport/libansi_gcl.a: $(ANSI_FOBJS) ++unixport/libansi_gcl0.a unixport/libansi_gcl.a: \ ++unixport/lib%.a: $(addprefix %/,$(CLCS_OBJS)) $(PCL_FOBJS) ++ ++unixport/libgcl.a unixport/libmod_gcl.a unixport/libansi_gcl.a: unixport/lib%.a: %/recompile ++gcl/recompile: $(L_FOBJS) ++mod_gcl/recompile: $(MOD_FOBJS) ++ansi_gcl/recompile: $(ANSI_FOBJS) + + unixport/libgcl_gprof.a: $(patsubst %.o,%.go,$(L_FOBJS)) + unixport/libansi_gcl_gprof.a: $(patsubst %.o,%.go,$(ANSI_FOBJS)) +@@ -319,6 +325,7 @@ unixport/lib%.a: | xbin/ar_merge + %/recompile: | unixport/% + $| -batch \ + -eval "(let ((si::*do-recomp-output-dir* \"$(@D)\")) (si::do-recomp t))" \ ++ -eval "(mapc (quote delete-file) (directory \"$(@D)/*.hsh\"))" \ + -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\" t)" + touch $@ + +@@ -334,11 +341,12 @@ unixport/gcl: | unixport/saved_gcl3 + unixport/mod_gcl0: | unixport/saved_gcl + unixport/mod_gcl: | unixport/saved_mod_gcl0 + unixport/pcl_gcl: | unixport/saved_mod_gcl +-unixport/ansi_gcl: | unixport/saved_pcl_gcl ++unixport/ansi_gcl0: | unixport/saved_pcl_gcl ++unixport/ansi_gcl: | unixport/saved_ansi_gcl0 + $(addprefix unixport/,gcl0 gcl1): unixport/% : unixport/cinit.lisp | % + echo "(system:save-system \"$@\")" | cat $< - | $(word 2,$|) + +-$(addprefix unixport/,gcl2 gcl3 gcl mod_gcl): unixport/% : | % ++$(addprefix unixport/,gcl2 gcl3 gcl mod_gcl ansi_gcl): unixport/% : | % + ln -snf $$(basename $(word 2,$|)) $@ + + unixport/mod_gcl0: xgcl-2/sysdef.lisp | mod_gcl0 +@@ -359,9 +367,9 @@ unixport/pcl_gcl: clcs/package.lisp cmpn + "(setq pcl::*pathname-extensions* (cons \"lisp\" \"o\"))" \ + "(si::save-system \"$@\")" | $(word 2,$|) + +-unixport/ansi_gcl: clcs/package.lisp clcs/gcl_clcs_precom.lisp \ ++unixport/ansi_gcl0: clcs/package.lisp clcs/gcl_clcs_precom.lisp \ + clcs/gcl_clcs_conditions.lisp clcs/gcl_clcs_condition_definitions.lisp \ +- | ansi_gcl ++ | ansi_gcl0 + echo "(mapc (quote load) (list $(patsubst %,\"%\",$^)))" \ + "(compiler::cdebug)" \ + "(si::save-system \"$@\")" | $(word 2,$|) +@@ -388,12 +396,12 @@ gcl1/%.o: | unixport/gcl1 + $(addprefix gcl2/,$(LL_OBJS)): gcl2/%.o : lsp/%.lsp + $(addprefix gcl2/,$(LC_OBJS)): gcl2/%.o : cmpnew/%.lsp + gcl2/%.o: | unixport/gcl2 +- $| -eval "(compiler::cdebug)(setq compiler::*dump-inl-hash* t)" -compile $< -o $@ ++ $| -eval "(progn (compiler::cdebug)(setq compiler::*dump-inl-hash* t))" -compile $< -o $@ + + $(addprefix gcl3/,$(LL_OBJS)): gcl3/%.o : lsp/%.lsp + $(addprefix gcl3/,$(LC_OBJS)): gcl3/%.o : cmpnew/%.lsp + gcl3/%.o: | unixport/gcl3 +- $| -eval "(compiler::cdebug)(setq compiler::*dump-inl-hash* t)" -compile $< -o $@ ++ $| -eval "(progn (compiler::cdebug)(setq compiler::*dump-inl-hash* t))" -compile $< -o $@ + + gcl/%.o: gcl3/%.o | gcl + cp $(patsubst %.o,%.*,$<) $(@D) +@@ -406,7 +414,6 @@ mod_gcl0/%.o: | unixport/mod_gcl0 + mod_gcl/%.o: mod_gcl0/%.o | unixport/mod_gcl + cp $(patsubst %.o,%.*,$<) $(@D) + +- + %/c1: | unixport/% + echo "(pcl::compile-pcl)" | $| + touch $@ +@@ -450,9 +457,13 @@ $(addprefix pcl_gcl/,$(PCL_OBJS)): pcl_g + touch $@ + + +-ansi_gcl/%.o: clcs/%.lisp | unixport/ansi_gcl ++ansi_gcl0/%.o: clcs/%.lisp | unixport/ansi_gcl0 + $| -eval "(setq compiler::*dump-inl-hash* t)" -compile $< -o $@ + ++ansi_gcl/%.o: ansi_gcl0/%.o | unixport/ansi_gcl ++ cp $(patsubst %.o,%.*,$<) $(@D) ++ ++ + %.go: %.o mod_gcl/recompile #FIXME parallel + $(CC) $(AM_CPPFLAGS) -I $( lev (third inl)) + (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-coalesce) + "Coalescing safety ~s: ~s ~s" (car cl) (third inl) lev) +@@ -694,7 +694,7 @@ + + (defun merge-inl (cl inl pl &aux (tps (pop inl))(tr (pop inl))) + (let ((z (member-if (lambda (x) (can-coalesce x tr inl tps)) (car pl)))) +- (cond (z (coalesce-inl cl (car z) tps (cdr (third inl))) ++ (cond (z (coalesce-inl cl (car z) tps (cdr (third inl)) (car inl)) + (setf (cdr z) (remove-if (lambda (x) (can-coalesce x tr inl tps)) (cdr z)))) + (pl (let ((x (list* tps tr inl))) + (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-add) +@@ -766,25 +766,86 @@ + x))))) + + +-(defun compress-inl (s &aux (i (car (gethash s *inl-hash*)))) +- (when (> (length i) 1) +- (let ((l (length i)) +- (x (reduce (lambda (y x) +- (list +- (mapl (lambda (z w) (setf (car z) (type-or1 (car z) (car w)))) +- (car y) (car x)) +- (max (cadr y) (third x)))) +- (cdr i) :initial-value (list (copy-list (caar i)) (third (car i))))) +- (syms (mapcar (lambda (x) (declare (ignore x)) (gensym)) (make-list (length (caar i)))))) +- (compile nil `(lambda ,syms +- (declare (optimize (safety ,(cadr x))) +- ,@(mapcar (lambda (x y) (list (cmp-unnorm-tp x) y)) (car x) syms)) +- (,s ,@syms))) +- (when (< (length (car (gethash s *inl-hash*))) l) +- (format t "compress-inl ~s: ~s -> ~s~%" s l (length (car (gethash s *inl-hash*)))))))) ++(defvar *ncompiles* 0) + +-(defun dump-inl-hash (f &optional compress &aux (si::*print-package* t)) +- (when compress (maphash (lambda (x y) (declare (ignore y)) (compress-inl x)) *inl-hash*)) ++(defun try-compile (nm s tps ++ &aux (*sig-discovery* t) ++ *compile-verbose* ++ (syms (mapcar (lambda (x) (declare (ignore x)) (gensym)) tps))) ++ (incf *ncompiles*) ++ (compile nil `(lambda ,syms ++ (declare (optimize (safety ,s))) ++ (declare ,@(mapcar (lambda (x y) (list (cmp-unnorm-tp x) y)) tps syms)) ++ (,nm ,@syms)))) ++ ++(defun extend-arg-tps (at tps s) ++ (let* ((st (member '* at)) ++ (at (ldiff at st)) ++ (at (if (< s 2) at (make-list (length at) :initial-element #tt)))) ++ (append at ++ (when st ++ (make-list (- (length tps) (length at)) :initial-element #tt))))) ++ ++(defun restrict-inl-1-tps (nm at inls) ++ (mapc (lambda (inl) ++ (mapl (lambda (ptp pstp &aux (tp (car ptp))(stp (car pstp))) ++ (unless (tp<= tp stp) ++ (let ((ntp (tp-and tp stp))) ++ (print (list nm (caddr inl) (cmp-unnorm-tp tp) 'to (cmp-unnorm-tp ntp))) ++ (setf (car ptp) ntp)))) ++ (car inl) ++ (extend-arg-tps at (car inl) (caddr inl)))) ++ (car inls))) ++ ++(defun iterate-over-inls (nm at &optional (it 0) ++ &aux (inls (copy-tree (get-inl-list (list nm)))) ++ (have-2 (member 2 (car inls) :key 'caddr))) ++ ++ (flet ((try (s tps chg) ;(print (list 'trying nm s (mapcar 'cmp-unnorm-tp tps))) ++ (try-compile nm s tps) ++ (unless (equal inls (get-inl-list (list nm))) ++ (print (list nm s (mapcar 'cmp-unnorm-tp tps) chg)) ++ (return-from iterate-over-inls (iterate-over-inls nm at (1+ it)))))) ++ (mapc (lambda (inl &aux (tps (copy-list (car inl)))) ++ (when (eql 0 (caddr inl)) ++ (try 1 (car inl) (list 0 '-> 1))) ++ (mapl (lambda (ptp pstp &aux (tp (car ptp))(stp (car pstp))) ++ (unless (tp>= tp stp) ++ (let ((ntp (tp-and stp (or (parent tp) t)))) ++ (setf (car ptp) ntp) ++ (try (caddr inl) tps (list (cmp-unnorm-tp tp) '-> (cmp-unnorm-tp ntp))) ++ (setf (car ptp) tp)))) ++ tps (extend-arg-tps at tps (caddr inl))) ++ (unless have-2 ++ (when (eq (caddr inl) 1) ++ (try 2 (car inl) (list 1 '-> 2)) ++ (let ((tps (copy-list (car inl)))) ++ (mapl (lambda (ptp &aux (tp (car ptp))) ++ (mapc (lambda (c) ++ (setf (car ptp) c) ++ (try 2 tps (list (cmp-unnorm-tp tp) '-> (cmp-unnorm-tp c)))) ++ (all-children tp)) ++ (setf (car ptp) tp)) ++ tps))))) ++ (car inls)) ++ it)) ++ ++(defun finalize-inls (nm &aux (*ncompiles* 0)(at (get-arg-types nm))(inls (get-inl-list (list nm)))) ++ (restrict-inl-1-tps nm at inls) ++ (list (iterate-over-inls nm at) *ncompiles* (show-inls nm))) ++ ++(defun finalize-all-inls (&aux redo) ++ (maphash (lambda (x y) ++ (declare (ignore y)) ++ (unless (zerop (car (finalize-inls x))) ++ (setq redo t))) ++ *inl-hash*) ++ (when redo ++ (finalize-all-inls))) ++ ++(defun dump-inl-hash (f &optional finalize &aux (si::*print-package* t)) ++ (when finalize (finalize-all-inls)) ++; (when compress (maphash (lambda (x y) (declare (ignore y)) (compress-inl x)) *inl-hash*)) + (with-open-file (s f :direction :output) + (prin1 '(in-package :compiler) s) + (terpri s) +@@ -800,9 +861,9 @@ + (list ,@(mapcan + (lambda (x) + `((list ',(pop x) ',(pop x) ',(mapcar 'export-type (car x))))) +- (cadr z))) ++ (sort (cadr z) '< :key (lambda (x) (hash-equal x -5))))) + ,(caddr z))) +- (car y)))) ++ (sort (car y) '< :key (lambda (x) (hash-equal x -5)))))) + s) + (terpri s)) + (let (r) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre34" ++"Version_2_7_2pre35" +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -1670,7 +1670,6 @@ int msbrk_end(void); + object quick_call_function_vec(object,ufixnum,object *); + int msbrk_initialized(void); + void *mdlopen(const char *,int); +-void close_dlopen_list(void); + void set_global_env_defaults(void); + void disable_aslr(int,char **,char **); + void set_leak_malloc_on(void); +--- gcl27-2.7.1.orig/lsp/gcl_callhash.lsp ++++ gcl27-2.7.1/lsp/gcl_callhash.lsp +@@ -290,7 +290,7 @@ + (dolist (s (gen-all-ftype-symbols)) + (let* ((f (or (file s) "")) + (sig (car (sym-plist s)))) +- (when (and sig (member f fl :test 'string=));e.g. fns in o/, interpreted, wrong-file ++ (when (and sig (member f fl :test 'search));e.g. fns in o/, interpreted, wrong-file + (push (list s sig) r)))) + (write-sys-proclaims1 sp r)) + +--- gcl27-2.7.1.orig/lsp/gcl_iolib.lsp ++++ gcl27-2.7.1/lsp/gcl_iolib.lsp +@@ -533,6 +533,7 @@ + + (declaim (inline byte-index)) + (defun byte-index (k n) ++ #+:clx-little-endian (declare (ignore n)) + #+:clx-little-endian k #-:clx-little-endian (- n 1 k)) + + (defun read-byte (s &optional (eof-error-p t) eof-value &aux (i 0)(tp (stream-element-type s))) +--- gcl27-2.7.1.orig/lsp/gcl_mnum.lsp ++++ gcl27-2.7.1/lsp/gcl_mnum.lsp +@@ -66,12 +66,12 @@ + (defdlfun (:double "carg" ) :dcomplex) + + (defun bsqrt (x);this is an instruction, or a jump to main body +- (declare (long-float x)) ++ (check-type x long-float) + (lit :double "sqrt(" (:double x) ")")) + (setf (get 'bsqrt 'compiler::cmp-inline) t) + + (defun bsqrtf (x);this is an instruction, or a jump to main body +- (declare (short-float x)) ++ (check-type x short-float) + (lit :float "sqrtf(" (:float x) ")")) + (setf (get 'bsqrtf 'compiler::cmp-inline) t) + +--- gcl27-2.7.1.orig/lsp/gcl_subtypep.lsp ++++ gcl27-2.7.1/lsp/gcl_subtypep.lsp +@@ -601,8 +601,10 @@ + (cond ((ntp-subtp x m) x) + ((unless ux (ntp-subtp xy xx)) oy) + ((unless uy (ntp-subtp xx xy)) ox) +- ((list (list x m `(and ,(if ux (car lx) (car (nreconstruct-type ox))) +- ,(if uy (car ly) (car (nreconstruct-type oy))))) ++ ((list (list x m ++ (let ((x (if ux (car lx) (car (nreconstruct-type ox)))) ++ (y (if uy (car ly) (car (nreconstruct-type oy))))) ++ (if (equal x y) x `(and ,x ,y)))) + d t))))) + + (defun ntp-or-unknown (ox lx ux oy ly uy d) +@@ -611,8 +613,10 @@ + (cond ((ntp-subtp x m) x) + ((unless ux (ntp-subtp mx my)) oy) + ((unless uy (ntp-subtp my mx)) ox) +- ((list (list x m `(or ,(if ux (car lx) (car (nreconstruct-type ox))) +- ,(if uy (car ly) (car (nreconstruct-type oy))))) ++ ((list (list x m ++ (let ((x (if ux (car lx) (car (nreconstruct-type ox)))) ++ (y (if uy (car ly) (car (nreconstruct-type oy))))) ++ (if (equal x y) x `(or ,x ,y)))) + d t))))) + + (defun ntp-and?c2-nil-p (x y ?c2) +--- gcl27-2.7.1.orig/lsp/gcl_type.lsp ++++ gcl27-2.7.1/lsp/gcl_type.lsp +@@ -4,7 +4,7 @@ + (export '(cmp-norm-tp tp-p + cmp-unnorm-tp + ; type-and type-or1 type>= type<= +- tp-not tp-and tp-or tp<= tp>= tp= uniq-tp tsrch uniq-sig ++ tp-not tp-and tp-or tp<= tp>= tp= uniq-tp tsrch parent all-children uniq-sig + atomic-tp tp-bnds object-tp + cmpt t-to-nil returs-exactly funcallable-symbol-function + infer-tp cnum creal long +@@ -758,6 +758,23 @@ + (when x + (or (tsrch tp (cdar x)) (caar x))))) + ++(defun parent (tp &optional (y *useful-type-tree*)) ++ (let ((x (member tp y :test (lambda (x y) (unless (tp<= y x) (tp<= x y))) :key 'car))) ++ (when x ++ (or (parent tp (cdar x)) (caar x))))) ++ ++(defun children (tp &optional (y (list (cons #tt *useful-type-tree*)))) ++ (let ((x (member tp y :test 'tp<= :key 'car))) ++ (when x ++ (or (children tp (cdar x)) (cdar x))))) ++ ++(defun flatten-children (c) ++ (mapcan (lambda (x) (cons (car x) (flatten-children (cdr x)))) c)) ++ ++(defun all-children (tp) ++ (remove-duplicates (flatten-children (children tp)))) ++ ++ + (defvar *uniq-tp* (make-hash-table :test 'eq)) + + (defun uniq-tp (tp) +--- gcl27-2.7.1.orig/o/alloc.c ++++ gcl27-2.7.1/o/alloc.c +@@ -1841,12 +1841,12 @@ realloc(void *ptr, size_t size) { + VFILLP_SET(x,size); + return(ptr); + } else { +- memset(x->st.st_self,0,x->st.st_dim); + x->st.st_self = alloc_contblock(size); ++ for (i = 0; i < x->st.st_dim; i++) ++ x->st.st_self[i] = ((char *)ptr)[i]; ++ memset(ptr,0,x->st.st_dim); + x->st.st_dim = size; + VSET_MAX_FILLP(x); +- for (i = 0; i < size; i++) +- x->st.st_self[i] = ((char *)ptr)[i]; + return(x->st.st_self); + } + } +--- gcl27-2.7.1.orig/o/cfun.c ++++ gcl27-2.7.1/o/cfun.c +@@ -76,14 +76,6 @@ DEFUN("CFDL",object,fScfdl,SI,0,0,NONE,O + RETURN1(Cnil); + } + +-DEFVAR("*DLOPEN-HANDLES*",sSAdlopen_handlesA,SI,Cnil,""); +- +-void +-close_dlopen_list(void) { +- for (;sSAdlopen_handlesA->s.s_dbind!=Cnil;sSAdlopen_handlesA->s.s_dbind=sSAdlopen_handlesA->s.s_dbind->c.c_cdr) +- dlclose((void *)fix(sSAdlopen_handlesA->s.s_dbind->c.c_car)); +-} +- + void * + mdlopen(const char *name,int flags) { + +@@ -95,13 +87,8 @@ mdlopen(const char *name,int flags) { + set_leak_malloc_off(); + if ((err=dlerror())) + FEerror("dlopen failure on ~s: ~s",2,name,make_simple_string(err)); +- if (name) { +- object x=sSAdlopen_handlesA->s.s_dbind; +- for (;x!=Cnil && fix(x->c.c_car)!=(fixnum)v;x=x->c.c_cdr); +- if (x==Cnil) +- sSAdlopen_handlesA->s.s_dbind=MMcons(make_fixnum((fixnum)v),sSAdlopen_handlesA->s.s_dbind); ++ if (name) + update_real_maxpage(); +- } + + return v; + } +--- gcl27-2.7.1.orig/o/error.c ++++ gcl27-2.7.1/o/error.c +@@ -33,7 +33,7 @@ object siSuniversal_error_handler; + object sSterminal_interrupt; + + #if defined(__APPLE__) +-char * ++const char * + strerrordesc_np(int errnum) { + return (errnum >= 0 && errnum < sys_nerr) ? sys_errlist[errnum] : "Unknown error"; + } +--- gcl27-2.7.1.orig/o/save.c ++++ gcl27-2.7.1/o/save.c +@@ -21,17 +21,17 @@ LFD(siLsave)(void) { + extern void *shared_lib_start; + extern jmp_buf gmp_jmp; + extern object sSreset_lib_syms; ++ object x=vs_base[0]; + + check_arg(1); + +- memset(FN1,0,sizeof(FN1)); +- coerce_to_filename(vs_base[0], FN1); +- + ifuncall1(sSreset_lib_syms,Cnil); +- close_dlopen_list(); + frs_top=frs_org-1; + gcl_cleanup(1); + ++ memset(FN1,0,sizeof(FN1)); ++ coerce_to_filename(x,FN1); ++ + /*FIXME clean this up when done*/ + + set_leak_malloc_on(); +--- gcl27-2.7.1.orig/unixport/init_raw.lsp.in ++++ gcl27-2.7.1/unixport/init_raw.lsp.in +@@ -55,6 +55,7 @@ + (lsp (append x (list "lsp"))) + (cmpnew (append x (list "cmpnew"))) + (h (append x (list "h"))) ++ (u (append x (list "unixport"))) + (xgcl-2 (append x (list "xgcl-2"))) + (pcl (append x (list "pcl"))) + (clcs (append x (list "clcs"))) +@@ -64,7 +65,7 @@ + (load (make-pathname :name "tk-package" :type "lsp" :directory gtk)) + (load (make-pathname :name "gcl_lfun_list" :type "lsp" :directory cmpnew)) + (load (make-pathname :name "gcl_cmpopt" :type "lsp" :directory cmpnew)) +- (let* ((x (merge-pathnames (make-pathname :name "gcl_cmpnopt" :type "lsp") *system-directory*))) ++ (let* ((x (make-pathname :name "gcl_cmpnopt" :type "lsp" :directory u))) + (when (probe-file x) (load x))) + (load (make-pathname :name "gcl_auto_new" :type "lsp" :directory lsp)) + diff --git a/debian/patches/Version_2_7_2pre36 b/debian/patches/Version_2_7_2pre36 new file mode 100644 index 00000000..9610de48 --- /dev/null +++ b/debian/patches/Version_2_7_2pre36 @@ -0,0 +1,698 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Jul, 16 2026 16:48:46 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -259,6 +259,9 @@ unixport/saved_%: | unixport/raw_% unixp + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ ++ GCL_DISABLE_ASLR=t \ ++ GCL_MULTIPROCESS_MEMORY_POOL= \ ++ GCL_MEM_BOUND=29 \ + GCL_LSPSYSDIR=../$(srcdir)/unixport/ \ + ../unixport/raw_$* unixport/ -libdir ./ && \ + rm -f ../unixport/gcl_cmpnopt.lsp +@@ -581,7 +584,7 @@ gcl-tk/%.o: gcl-tk/%.lsp | unixport/save + CLEANFILES+=gcl-tk/demos/index.lsp gcl-tk/demos/gc-monitor.o + gcl-tk/demos/index.lsp: gcl-tk/tkl.o | unixport/saved_gcl + [ -d $(@D) ] || mkdir -p $(@D) +- cd $(@D) && echo "(load \"../../$<\")(tk::get-autoloads (directory \"*.lisp\"))" | ../../$| ++ cd $(@D) && echo "(load \"../../$<\")(tk::get-autoloads)" | ../../$| + + sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_collectfn.lsp | unixport/saved_gcl + [ -d $(@D) ] || mkdir -p $(@D) +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -4598,6 +4598,9 @@ unixport/saved_%: | unixport/raw_% unixp + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ ++ GCL_DISABLE_ASLR=t \ ++ GCL_MULTIPROCESS_MEMORY_POOL= \ ++ GCL_MEM_BOUND=29 \ + GCL_LSPSYSDIR=../$(srcdir)/unixport/ \ + ../unixport/raw_$* unixport/ -libdir ./ && \ + rm -f ../unixport/gcl_cmpnopt.lsp +@@ -4899,7 +4902,7 @@ gcl-tk/%.o: gcl-tk/%.lsp | unixport/save + $(word 1,$|) -compile $< -o $@ + gcl-tk/demos/index.lsp: gcl-tk/tkl.o | unixport/saved_gcl + [ -d $(@D) ] || mkdir -p $(@D) +- cd $(@D) && echo "(load \"../../$<\")(tk::get-autoloads (directory \"*.lisp\"))" | ../../$| ++ cd $(@D) && echo "(load \"../../$<\")(tk::get-autoloads)" | ../../$| + + sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_collectfn.lsp | unixport/saved_gcl + [ -d $(@D) ] || mkdir -p $(@D) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp +@@ -650,7 +650,7 @@ + (defun lit-inl2 (form &aux (lf (eq 'lit (car form)))) + (list (this-safety-level) + (mapcar (lambda (x) (assert (eq (car x) 'ub)) (third x)) (when lf (fifth form))) +- (cons (when lf (third form)) (info-type (cadr form))) ++ (cons (when lf (third form)) (ensure-known-type (info-type (cadr form)))) + (ninth form) + (if lf (remove-comment (fourth form)) ""))) + +@@ -685,12 +685,15 @@ + (let ((i -1)) (mapcan (lambda (x &aux (y (incf i))) (unless (atomic-tp x) (list y))) tps)) + tr))) + ++(defun tr-unused-tps (tr tps &aux (i -1)) ++ (mapcar (lambda (x) (if (member (incf i) tr) t x)) tps)) ++ + (defun ?update-fm-propagator (fm cl tr tps) + (when (symbolp (car cl)) + (when (get (car cl) 'type-propagator);?more + (when (eq (car fm) 'lit) + (when (member-if 'integerp tr) ;otherwise no point +- (push (list (car cl) tr tps) (ninth fm))))))) ++ (push (list (car cl) tr (tr-unused-tps tr tps)) (ninth fm))))))) + + (defun merge-inl (cl inl pl &aux (tps (pop inl))(tr (pop inl))) + (let ((z (member-if (lambda (x) (can-coalesce x tr inl tps)) (car pl)))) +@@ -705,7 +708,7 @@ + (mapc (lambda (x) (merge-inl cl x pl)) inls)) + + (defun ?add-inl (cl fms fm) +- (let* ((tps (mapcar (lambda (x) (info-type (caddr x))) fms)) ++ (let* ((tps (mapcar (lambda (x) (ensure-known-type (info-type (caddr x)))) fms)) + (tr (mapcar (lambda (x &aux (v (car (last x)))) + (when (and (consp v) (eq (car v) 'var)) + (position (cddr v) fms :key 'cdddr :test 'equalp)));FIXME +@@ -719,8 +722,6 @@ + (si::string-concatenate "/* " (prin1-to-string form) " */" (remove-comment s)) + s)) + +-(defvar *apply-inl-hash* t) +- + (defun update-info-type-from-inl (i inl fms &aux (tps (mapcar (lambda (x) (info-type (caddr x))) fms))) + (setf (info-type i) + (reduce 'type-and +@@ -745,8 +746,14 @@ + (mapc (lambda (y) (?update-fm-propagator x y tr (caddr y))) + (sixth inl)))) + ++(defvar *block-apply-inl* nil) ++ ++(defun block-apply-inl (cl) ++ (if (listp *block-apply-inl*) ++ (member (car cl) *block-apply-inl*) ++ t)) + +-(defun apply-inl (cl fms &aux (inl (when *apply-inl-hash* (inls-match cl fms)))) ++(defun apply-inl (cl fms &aux (inl (unless (block-apply-inl cl) (inls-match cl fms)))) + (when inl + (let* ((c1fms (mapcar (lambda (x) (cdr (nth x fms))) (second inl)))) + (unless (member-if-not (lambda (x) +@@ -769,7 +776,7 @@ + (defvar *ncompiles* 0) + + (defun try-compile (nm s tps +- &aux (*sig-discovery* t) ++ &aux (*sig-discovery* t) si::*sig-discovery-props* + *compile-verbose* + (syms (mapcar (lambda (x) (declare (ignore x)) (gensym)) tps))) + (incf *ncompiles*) +@@ -798,7 +805,8 @@ + (car inls))) + + (defun iterate-over-inls (nm at &optional (it 0) +- &aux (inls (copy-tree (get-inl-list (list nm)))) ++ &aux (*block-apply-inl* (list nm)) ++ (inls (copy-tree (get-inl-list (list nm)))) + (have-2 (member 2 (car inls) :key 'caddr))) + + (flet ((try (s tps chg) ;(print (list 'trying nm s (mapcar 'cmp-unnorm-tp tps))) +@@ -807,6 +815,7 @@ + (print (list nm s (mapcar 'cmp-unnorm-tp tps) chg)) + (return-from iterate-over-inls (iterate-over-inls nm at (1+ it)))))) + (mapc (lambda (inl &aux (tps (copy-list (car inl)))) ++ (try (caddr inl) (car inl) (list 'no-mod)) + (when (eql 0 (caddr inl)) + (try 1 (car inl) (list 0 '-> 1))) + (mapl (lambda (ptp pstp &aux (tp (car ptp))(stp (car pstp))) +@@ -830,6 +839,21 @@ + (car inls)) + it)) + ++(defun seed-all-inls (&aux r) ++ (declare (dynamic-extent r)) ++ (do-all-symbols (s) ++ (unless (gethash s *inl-hash*) ++ (when (fboundp s) ++ (unless (or (macro-function s) (special-operator-p s)) ++ (when (get-return-type s) ++ (unless (member s r) ++ (pushnew s r) ++ (let ((at (get-arg-types s))) ++ (print s) ++ (try-compile s 0 ++ (make-list (length (ldiff at (member '* at))) ++ :initial-element t)))))))))) ++ + (defun finalize-inls (nm &aux (*ncompiles* 0)(at (get-arg-types nm))(inls (get-inl-list (list nm)))) + (restrict-inl-1-tps nm at inls) + (list (iterate-over-inls nm at) *ncompiles* (show-inls nm))) +@@ -840,12 +864,14 @@ + (unless (zerop (car (finalize-inls x))) + (setq redo t))) + *inl-hash*) +- (when redo +- (finalize-all-inls))) ++ (when redo (finalize-all-inls))) ++ ++(defun finalize-inl-hash nil ++ (seed-all-inls) ++ (finalize-all-inls)) + + (defun dump-inl-hash (f &optional finalize &aux (si::*print-package* t)) +- (when finalize (finalize-all-inls)) +-; (when compress (maphash (lambda (x y) (declare (ignore y)) (compress-inl x)) *inl-hash*)) ++ (when finalize (finalize-inl-hash)) + (with-open-file (s f :direction :output) + (prin1 '(in-package :compiler) s) + (terpri s) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptype.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptype.lsp +@@ -871,7 +871,8 @@ + (si::putprop 'random 'random-propagator 'type-propagator) + + (defun lgcd2-propagator (f t1 t2 t3 +- &aux (a1 (car (atomic-tp t1)))(a2 (car (atomic-tp t2))) ++ &aux (t1 (type-and #tinteger t1))(t2 (type-and #tinteger t2))(t3 (type-and #tinteger t3)) ++ (a1 (car (atomic-tp t1)))(a2 (car (atomic-tp t2))) + (a3 (car (atomic-tp t3)))) + (cond ((and a1 a2 a3) (object-type (funcall f a1 a2 a3))) + ((type-and #t(not (integer 0 0)) (super-range '* #t(integer 0 1) (super-range 'min t1 t2)))))) +--- gcl27-2.7.1.orig/cmpnew/gcl_lfun_list.lsp ++++ gcl27-2.7.1/cmpnew/gcl_lfun_list.lsp +@@ -18,6 +18,7 @@ + ; (((t) t) . si::type-of-c) + ; (((list) t) . si::cons-car) + ; (((list) t) . si::cons-cdr) ++ (((structure) symbol) . structure-name) + (((t t) cons) . cons) + (((*) si::proper-list) . list) + (((t *) list) . list*) +@@ -33,6 +34,7 @@ + (((real *) (returns-exactly real real)) . ceiling) + (((real *) (returns-exactly real real)) . truncate) + (((real *) (returns-exactly real real)) . round) ++ ((((or (integer 1) (float (0))) *) (or (integer 0) (float 0))) . random) + ; (((cons t) cons) . rplaca) + ; (((cons t) cons) . rplacd) + ; (((symbol) boolean) . boundp) +--- gcl27-2.7.1.orig/gcl-tk/guis.c ++++ gcl27-2.7.1/gcl-tk/guis.c +@@ -273,7 +273,7 @@ char *envp[]; + { + dfprintf(stderr, "guis,vforked child : %d\n", p); + +- _exit(p); ++ _exit(0); + /* + return p; + */ +--- gcl27-2.7.1.orig/gcl-tk/tkl.lisp ++++ gcl27-2.7.1/gcl-tk/tkl.lisp +@@ -1487,18 +1487,15 @@ on ~a as in: ~s~%" host command ))) + (setf (msg-index) (the fixnum (+ m 1))) + m) + +-(defun get-autoloads (&optional (lis (directory "*.lisp")) ( out "index.lsp") +- &aux *paths* +- ) +- (declare (special *paths*)) ++(defun get-autoloads (&optional ++ (lis (sort (directory "*.lisp") 'string<= :key 'namestring)) ++ (out "index.lsp")) + (with-open-file + (st out :direction :output) + (format st "~%(in-package ~s)" (package-name *package*)) + (dolist (v lis) (get-file-autoloads v st)) + (format st "~%(in-package ~s)" (package-name *package*)) +- ;(format st "~2%~s" `(setq si::*load-path* (append ',*paths* si::*load-path*))) +- +- )) ++ (format st "~%(push (namestring (make-pathname :directory (pathname-directory *load-pathname*))) si::*load-path*)"))) + + + +@@ -1506,16 +1503,10 @@ on ~a as in: ~s~%" host command ))) + &aux (eof '(nil)) + (*package* *package*) + saw-package +- name ) +- (declare (special *paths*)) ++ name) + (setq name (pathname-name (pathname file))) + (with-open-file + (st file) +- (if (boundp '*paths*) +- (pushnew (namestring (make-pathname :directory +- (pathname-directory +- (truename st)))) +- *paths* :test 'equal)) + (sloop for tem = (read st nil eof) + while (not (eq tem eof)) + do (cond ((and (consp tem) (eq (car tem) 'defun)) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1 +1 @@ +-"Version_2_7_2pre35" ++"Version_2_7_2pre36" +--- gcl27-2.7.1.orig/h/386-macosx.h ++++ gcl27-2.7.1/h/386-macosx.h +@@ -115,7 +115,6 @@ do { + } while (0) + + #ifdef _LP64 +-#define C_GC_OFFSET 4 + #include + #define RELOC_H "mach64_i386_reloc.h" + #else +--- gcl27-2.7.1.orig/h/aarch64-macosx.h ++++ gcl27-2.7.1/h/aarch64-macosx.h +@@ -114,7 +114,6 @@ do { + (a_) = fub; \ + } while (0) + +-#define C_GC_OFFSET 4 + #include + #define RELOC_H "mach64_aarch64_reloc.h" + +--- gcl27-2.7.1.orig/h/amd64-kfreebsd.h ++++ gcl27-2.7.1/h/amd64-kfreebsd.h +@@ -8,9 +8,6 @@ + #define I386 + #define SGC + +-/* Apparently stack pointers can be 4 byte aligned, at least &argc -- CM */ +-#define C_GC_OFFSET 4 +- + #define RELOC_H "elf64_i386_reloc.h" + + #define BRK_DOES_NOT_GUARANTEE_ALLOCATION +--- gcl27-2.7.1.orig/h/amd64-linux.h ++++ gcl27-2.7.1/h/amd64-linux.h +@@ -7,9 +7,6 @@ + #define I386 + #define SGC + +-/* Apparently stack pointers can be 4 byte aligned, at least &argc -- CM */ +-#define C_GC_OFFSET 4 +- + #define RELOC_H "elf64_i386_reloc.h" + #define MAX_CODE_ADDRESS (1L<<31)/*large memory model broken gcc 4.8*/ + #define MAX_DEFAULT_MEMORY_MODEL_CODE_ADDRESS (1UL<<31) +--- gcl27-2.7.1.orig/h/att_ext.h ++++ gcl27-2.7.1/h/att_ext.h +@@ -171,6 +171,7 @@ EXTER char **ARGV; + #ifdef UNIX + EXTER char **ENVP; + #endif ++EXTER struct stat ss; + + EXTER object sSAsystem_directoryA; + #ifdef UNIX +--- gcl27-2.7.1.orig/h/loongarch64-linux.h ++++ gcl27-2.7.1/h/loongarch64-linux.h +@@ -2,9 +2,6 @@ + + #define SGC + +-/* Apparently stack pointers can be 4 byte aligned, at least &argc -- CM */ +-#define C_GC_OFFSET 4 +- + #define RELOC_H "elf64_loongarch64_reloc.h" + #define SPECIAL_RELOC_H "elf64_loongarch64_reloc_special.h" + /* #define MAX_CODE_ADDRESS (1L<<31)/\*large memory model broken gcc 4.8*\/ */ +--- gcl27-2.7.1.orig/h/pool.h ++++ gcl27-2.7.1/h/pool.h +@@ -63,7 +63,6 @@ open_pool(void) { + + if (pool==-1) { + +- struct stat ss; + massert(!lstat(multiprocess_memory_pool,&ss)); + massert(S_ISDIR(ss.st_mode)); + +--- gcl27-2.7.1.orig/h/powerpc-linux.h ++++ gcl27-2.7.1/h/powerpc-linux.h +@@ -21,5 +21,4 @@ + #define SPECIAL_RELOC_H "elf64_ppcle_reloc_special.h" + #endif + #define OUTPUT_MACH bfd_mach_ppc64 +-#define C_GC_OFFSET 4 + #endif +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -1671,6 +1671,6 @@ object quick_call_function_vec(object,uf + int msbrk_initialized(void); + void *mdlopen(const char *,int); + void set_global_env_defaults(void); +-void disable_aslr(int,char **,char **); ++void maybe_disable_aslr(int,char **,char **); + void set_leak_malloc_on(void); + void set_leak_malloc_off(void); +--- gcl27-2.7.1.orig/h/riscv64-linux.h ++++ gcl27-2.7.1/h/riscv64-linux.h +@@ -2,9 +2,6 @@ + + #define SGC + +-/* Apparently stack pointers can be 4 byte aligned, at least &argc -- CM */ +-#define C_GC_OFFSET 4 +- + #define RELOC_H "elf64_riscv64_reloc.h" + /* #define MAX_CODE_ADDRESS (1L<<31)/\*large memory model broken gcc 4.8*\/ */ + +--- gcl27-2.7.1.orig/h/s390-linux.h ++++ gcl27-2.7.1/h/s390-linux.h +@@ -3,7 +3,6 @@ + #define SGC + + #if SIZEOF_LONG == 8 +-#define C_GC_OFFSET 4 + #define RELOC_H "elf64_s390_reloc.h" + #define SPECIAL_RELOC_H "elf64_sparc_reloc_special.h" + #define OUTPUT_MACH bfd_mach_s390_64 +--- gcl27-2.7.1.orig/h/sparc-linux.h ++++ gcl27-2.7.1/h/sparc-linux.h +@@ -14,8 +14,4 @@ + #define SPECIAL_RELOC_H "elf64_sparc_reloc_special.h" + #endif + +-/* #if SIZEOF_LONG == 8 */ +-/* #define C_GC_OFFSET 4 */ +-/* #endif */ +- + #define OUTPUT_MACH bfd_mach_sparc_v9 +--- gcl27-2.7.1.orig/o/cmpaux.c ++++ gcl27-2.7.1/o/cmpaux.c +@@ -659,7 +659,6 @@ find_init_name1(char *s,unsigned len) { + return find_init_string(tmp); + + #else +- struct stat ss; + char *tmp,*q; + FILE *f; + +--- gcl27-2.7.1.orig/o/disable_aslr.c ++++ gcl27-2.7.1/o/disable_aslr.c +@@ -1,7 +1,5 @@ + #include "include.h" + +-#ifdef DISABLE_ASLR +- + #if defined(__APPLE__) + + #include +@@ -15,11 +13,16 @@ + #endif + + void +-disable_aslr(int argc, char **argv, char **envp) { ++maybe_disable_aslr(int argc, char **argv, char **envp) { + + pid_t pid; + posix_spawnattr_t attr; + ++#ifndef DISABLE_ASLR ++ if (!getenv("GCL_DISABLE_ASLR")) ++ return; ++#endif ++ + if (!_dyld_get_image_vmaddr_slide(0)) { + return; + } +@@ -88,11 +91,16 @@ reexec(int argc, char **argv, char **env + #include + + void +-disable_aslr(int argc, char **argv, char **envp) { ++maybe_disable_aslr(int argc, char **argv, char **envp) { + + long pers; + long flag = ADDR_NO_RANDOMIZE|(sizeof(flag)==4 ? ADDR_COMPAT_LAYOUT : 0); + ++#ifndef DISABLE_ASLR ++ if (!getenv("GCL_DISABLE_ASLR")) ++ return; ++#endif ++ + massert((pers=personality(-1))!=-1); + + /*READ_IMPLIES_EXEC is for selinux, but selinux will reset it in the child*/ +@@ -114,11 +122,16 @@ disable_aslr(int argc, char **argv, char + #include + + void +-disable_aslr(int argc, char **argv, char **envp) { ++maybe_disable_aslr(int argc, char **argv, char **envp) { + + const int cctl=PROC_ASLR_FORCE_DISABLE; + int stat,ctl=cctl; + ++#ifndef DISABLE_ASLR ++ if (!getenv("GCL_DISABLE_ASLR")) ++ return; ++#endif ++ + massert(procctl(P_PID, 0, PROC_ASLR_STATUS, &stat) != -1); + + if ((stat&cctl)!=cctl && !getenv("GCL_UNRANDOMIZE")) { +@@ -136,12 +149,10 @@ disable_aslr(int argc, char **argv, char + #else /*Unneeded on Hurd, cygwin/mingw via coff header flag*/ + + void +-disable_aslr(int argc, char **argv, char **envp) { ++maybe_disable_aslr(int argc, char **argv, char **envp) { + return; + } + + #endif + +-#endif +- + #endif +--- gcl27-2.7.1.orig/o/file.d ++++ gcl27-2.7.1/o/file.d +@@ -257,7 +257,6 @@ open_stream(object fn,enum smmode smm, o + + if (!(fp=*FN1=='|' ? popen(FN1+1,"r") : fopen_not_dir(FN1,"r")) && sSAallow_gzipped_fileA->s.s_dbind!=Cnil) { + +- struct stat ss; + massert(snprintf(FN2,sizeof(FN2),"%s.gz",FN1)>0); + + if (!stat(FN2,&ss)) { +--- gcl27-2.7.1.orig/o/gprof.c ++++ gcl27-2.7.1/o/gprof.c +@@ -1,9 +1,21 @@ ++#include ++ + #include "include.h" + #include "page.h" + #include "ptable.h" + +- + static unsigned long gprof_on; ++static void (*real_mcount)(void); ++ ++void __attribute__((no_instrument_function)) ++mcount(void) { ++ ++ if (__builtin_expect(!gprof_on,1)) ++ return; ++ ++ real_mcount(); ++ ++} + + /*all but this stub to be written in the future provided*/ + #if defined(__APPLE__) +@@ -44,6 +56,8 @@ DEFUN("MONSTARTUP",object,fSmonstartup,S + return Cnil; + + writable_malloc_wrap(my_monstartup,int,start,end); ++ if (__builtin_expect(!real_mcount,0)) ++ massert(real_mcount=dlsym(RTLD_NEXT,"mcount")); + gprof_on=1; + + return Ct; +@@ -54,6 +68,7 @@ void + gprof_cleanup(void) { + + FFN(fSmcleanup)(); ++ real_mcount=NULL; + + } + +--- gcl27-2.7.1.orig/o/hash.d ++++ gcl27-2.7.1/o/hash.d +@@ -79,7 +79,7 @@ static ufixnum + ufixhash(ufixnum g) { + ufixnum i,h; + for (h=i=0;i>=CHAR_SIZE,i++) +- h^=rtb[g&MASK(CHAR_SIZE)]; ++ h^=rtb[(g+i)&MASK(CHAR_SIZE)]; + return h; + } + +@@ -200,11 +200,11 @@ BEGIN: + + for (;u>s; +- if (u>s; +- if (ud_type + #else + #define get_d_type(e,s) \ +- ({struct stat ss;\ +- massert(snprintf(FN1,sizeof(FN1),"%-*.*s%s",s->st.st_fillp,s->st.st_fillp,s->st.st_self,e->d_name)>=0);\ ++ ({massert(snprintf(FN1,sizeof(FN1),"%-*.*s%s",s->st.st_fillp,s->st.st_fillp,s->st.st_self,e->d_name)>=0);\ + lstat(FN1,&ss);S_ISDIR(ss.st_mode) ? DT_DIR : DT_REG;}) + #endif + +@@ -517,7 +507,6 @@ get_mmap_flags(FILE *fp,void **ve,int fl + + int n; + void *v1; +- struct stat ss; + + massert((n=fileno(fp))>2); + massert(!fstat(n,&ss)); +--- gcl27-2.7.1.orig/unixport/sys.c ++++ gcl27-2.7.1/unixport/sys.c +@@ -23,8 +23,6 @@ + static void + ar_init_fn(void (fn)(void),const char *s) { + +- struct stat ss; +- + if (stat(s,&ss)) { + + char *sysd=getenv("GCL_SYSDIR"); diff --git a/debian/patches/Version_2_7_2pre5 b/debian/patches/Version_2_7_2pre5 new file mode 100644 index 00000000..c0e16198 --- /dev/null +++ b/debian/patches/Version_2_7_2pre5 @@ -0,0 +1,157 @@ +Description: Update to git tag Version_2_7_2pre5 + Git tag update +Forwarded: not-needed +Author: Camm Maguire + +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_2ore3" ++"Version_2_7_2ore5" + +--- gcl27-2.7.1.orig/h/cstack.h ++++ gcl27-2.7.1/h/cstack.h +@@ -16,40 +16,31 @@ + #define SET_STACK_POINTER "mov %0,r15\n\t" + #endif + +-#define FIXED_STACK (1UL<<23)/*FIXME configure?*/ +-#if defined(__SH4__)/*FIXME is this just due to qemu?*/ +-#define CTOP (void *)0x80000000 +-#define SS FIXED_STACK ++#define CTOP (void *)0xc0000000/*FIXME configure?*/ ++#define MIN_STACK (1UL<<23)/*QEMU will not grow the stack*/ ++ ++#if defined(__SH4__) ++#undef CTOP ++#define CTOP (void *)0x80000000/*FIXME is this just due to qemu?*/ + #elif defined(__gnu_hurd__) +-#define CTOP (void *)0xc0000000 +-#define SS FIXED_STACK + #define MAP_GROWSDOWN 0 + #define MAP_STACK 0 +-#else +-#define CTOP (void *)0xc0000000/*FIXME configure?*/ +-#define SS getpagesize() + #endif + + #ifdef SET_STACK_POINTER + { +- void *p,*p1,*b,*s; ++ void *p,*p1,*b=CTOP-MIN_STACK,*s; + int a,f=MAP_FIXED|MAP_PRIVATE|MAP_ANON|MAP_STACK; +- int ss= +-#ifdef CHECK_FOR_QEMU +- qemu_p() ? FIXED_STACK : +-#endif +- SS; + + p=alloca(1); + p1=alloca(1); +- b=CTOP-(p1

CTOP || p < b) { +- if (mmap(b,ss,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) { ++ if (mmap(b,MIN_STACK,PROT_READ|PROT_WRITE|PROT_EXEC,f,-1,0)!=(void *)-1) { + stack_map_base=b; + asm volatile (SET_STACK_POINTER::"r" (s):"memory"); + if (p1>p) +--- gcl27-2.7.1.orig/h/elf64_alpha_reloc_special.h ++++ gcl27-2.7.1/h/elf64_alpha_reloc_special.h +@@ -94,7 +94,7 @@ find_special_params(void *v,Shdr *sec1,S + static int + label_got_symbols(void *v1,Shdr *sec1,Shdr *sece,Sym *sym1,Sym *syme,const char *st1,const char *sn,ul *gs) { + +- Sym *sym,*fsym=sym1; ++ Sym *sym; + Rela *r; + Shdr *sec; + void *v,*ve; +@@ -142,12 +142,9 @@ label_got_symbols(void *v1,Shdr *sec1,Sh + + case R_ALPHA_GPDISP: + +- for (sym=fsym;symst_shndx!=1 || LOW(sym->st_value)!=r->r_offset);sym++);/*ordered search*/ +- +- if (symst_value,gotp=*gs+1); +- } ++ for (sym=sym1;symst_shndx!=1 || !LOW(sym->st_size) || LOW(sym->st_value)!=r->r_offset);sym++); ++ if (symst_value,gotp=*gs+1); + + SET_HIGH(r->r_addend,gotp); + +@@ -157,9 +154,8 @@ label_got_symbols(void *v1,Shdr *sec1,Sh + + q=LOW(sym1[ELF_R_SYM(r->r_info)].st_value)+r->r_addend; + +- /*unordered search*/ +- for (sym=sym1;symst_shndx!=1 || LOW(sym->st_value)>q || LOW(sym->st_value)+LOW(sym->st_size)st_shndx!=1 || LOW(sym->st_value)>q || LOW(sym->st_value)+LOW(sym->st_size)<=q);sym++); ++ massert(symst_value)); + + SET_HIGH(r->r_addend,HIGH(sym->st_value)); + +--- gcl27-2.7.1.orig/lsp/gcl_directory.lsp ++++ gcl27-2.7.1/lsp/gcl_directory.lsp +@@ -75,8 +75,7 @@ + (let ((r (with-open-file (s (apply 'string-concatenate "|" #-winnt "command -v " + #+winnt "for %i in (" s #+winnt ".exe) do @echo.%~$PATH:i" nil)) + (read-line s nil 'eof)))) +- (unless (eq r 'eof) +- (string-downcase r)))) ++ (unless (eq r 'eof) r))) + + (defun get-path (s &aux + (e (unless (minusp (string-match #v"([^\n\t\r ]+)([\n\t\r ]|$)" s))(match-end 1))) +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -407,32 +407,6 @@ setup_maxpages(double scale) { + + } + +-int +-qemu_p(void) { +- +-#if !defined(DARWIN) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__)/*FIXME*/ +- +- char *c; +- ufixnum e,r=0; +- int l; +- +- massert((l=open("/proc/cpuinfo",O_RDONLY))!=-1); +- +- for (e=0;!e && (c=next_line(l,&r));) +- e=!memcmp("model",c,5) && strstr(c,"QEMU"); +- +- massert(!close(l)); +- +- return e; +- +-#else +- +- return 0; +- +-#endif +-} +- +- + static void * + next_shared_lib_map_no_malloc(void) { + +@@ -753,7 +727,6 @@ main(int argc, char **argv, char **envp) + bds_top = bds_org-1; + frs_top = frs_org-1; + +-#define CHECK_FOR_QEMU + #include "cstack.h" + + gcl_init_alloc(alloca(1)); diff --git a/debian/patches/Version_2_7_2pre6 b/debian/patches/Version_2_7_2pre6 new file mode 100644 index 00000000..d49a45b3 --- /dev/null +++ b/debian/patches/Version_2_7_2pre6 @@ -0,0 +1,419 @@ +Description: + TODO: Put a short summary on the line above and replace this paragraph + with a longer explanation of this change. Complete the meta-information + with other relevant fields (see below for details). To make it easier, the + information below has been extracted from the changelog. Adjust it or drop + it. + . + gcl27 (2.7.1-7) unstable; urgency=medium + . + * Version_2_7_2pre6 + * Bug fix: "[INTL:nl] Dutch debconf templates translation", thanks to Frans Spiesschaert (Closes: #1106482). +Author: Camm Maguire +Bug-Debian: https://bugs.debian.org/1106482 + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-Debian: https://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: +Last-Update: 2025-05-29 + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -270,7 +270,7 @@ unixport/gcl_cmpnopt_pre_gcl.lsp: # FIXM + touch $@ + unixport/gcl_cmpnopt_%.lsp: unixport/lib%.a | unixport/% + echo "(mapc (quote load) (directory \"$*/*.hsh\"))" \ +- "(compiler::dump-inl-hash \"$@\")" | $| ++ "(compiler::dump-inl-hash \"$@\" t)" | $| + + $(addprefix unixport/lib,$(addsuffix .a,pre_gcl $(MY_DIRS))): \ + unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o +@@ -302,7 +302,7 @@ unixport/lib%.a: | xbin/ar_merge + %/recompile: | unixport/% + $| -batch \ + -eval "(let ((si::*do-recomp-output-dir* \"$(@D)\")) (si::do-recomp t))" \ +- -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\")" ++ -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\" t)" + touch $@ + + unixport/sys_%.o: unixport/sys_init.c +@@ -418,7 +418,7 @@ mod_gcl/%.o: mod_gcl0/%.o | unixport/mod + rm -rf $*/*.o + echo "(mapc (quote load) (list $(patsubst %,\"%\",$^)))" \ + "(pcl::compile-pcl)" \ +- "(compiler::dump-inl-hash \"$@\")" | $| ++ "(compiler::dump-inl-hash \"$@\" t)" | $| + + %/all.hsh: %/p1.lisp %/all.hs1 | unixport/pcl_gcl + echo "pcl conflicts:" +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -4701,7 +4701,7 @@ unixport/gcl_cmpnopt_pre_gcl.lsp: # FIXM + touch $@ + unixport/gcl_cmpnopt_%.lsp: unixport/lib%.a | unixport/% + echo "(mapc (quote load) (directory \"$*/*.hsh\"))" \ +- "(compiler::dump-inl-hash \"$@\")" | $| ++ "(compiler::dump-inl-hash \"$@\" t)" | $| + + $(addprefix unixport/lib,$(addsuffix .a,pre_gcl $(MY_DIRS))): \ + unixport/lib%.a: lib/libbase_gcl.a $(LIBGPROF) unixport/sys_%.o +@@ -4728,7 +4728,7 @@ unixport/lib%.a: | xbin/ar_merge + %/recompile: | unixport/% + $| -batch \ + -eval "(let ((si::*do-recomp-output-dir* \"$(@D)\")) (si::do-recomp t))" \ +- -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\")" ++ -eval "(compiler::dump-inl-hash \"$(@D)/all.hsh\" t)" + touch $@ + + unixport/sys_%.o: unixport/sys_init.c +@@ -4843,7 +4843,7 @@ mod_gcl/%.o: mod_gcl0/%.o | unixport/mod + rm -rf $*/*.o + echo "(mapc (quote load) (list $(patsubst %,\"%\",$^)))" \ + "(pcl::compile-pcl)" \ +- "(compiler::dump-inl-hash \"$@\")" | $| ++ "(compiler::dump-inl-hash \"$@\" t)" | $| + + %/all.hsh: %/p1.lisp %/all.hs1 | unixport/pcl_gcl + echo "pcl conflicts:" +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpeval.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpeval.lsp +@@ -648,6 +648,7 @@ + (list (this-safety-level) + (mapcar (lambda (x) (assert (eq (car x) 'ub)) (third x)) (when lf (fifth form))) + (cons (when lf (third form)) (info-type (cadr form))) ++ (ninth form) + (if lf (remove-comment (fourth form)) ""))) + + (defun cl-to-fn (cl) +@@ -672,33 +673,77 @@ + (when (eql (length x) (length cy)) + (every 'type<= x cy)))))))) + ++(defun skip-inl (fm tps tr) ++ (or (member-if 'atomic-tp tps) ++ (atomic-tp (info-type (cadr fm))) ++ (exit-to-fmla-p) ++ (member nil tr) ++ (set-difference ++ (let ((i -1)) (mapcan (lambda (x &aux (y (incf i))) (unless (atomic-tp x) (list y))) tps)) ++ tr))) ++ ++(defun ?update-fm-propagator (fm cl tr tps) ++ (when (symbolp (car cl)) ++ (when (get (car cl) 'type-propagator);?more ++ (when (eq (car fm) 'lit) ++ (when (member-if 'integerp tr) ;otherwise no point ++ (push (list (car cl) tr tps) (ninth fm))))))) ++ ++(defun merge-inl (cl inl pl &aux (tps (pop inl))(tr (pop inl))) ++ (let ((z (member-if (lambda (x) (can-coalesce x tr inl tps)) (car pl)))) ++ (cond (z (coalesce-inl cl (car z) tps (cdr (third inl))) ++ (setf (cdr z) (remove-if (lambda (x) (can-coalesce x tr inl tps)) (cdr z)))) ++ (pl (let ((x (list* tps tr inl))) ++ (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-add) ++ "Adding inl-hash ~s: ~s" (car cl) x) ++ (push x (car pl))))))) ++ ++(defun merge-inls (s inls &aux (cl (list s))(pl (get-inl-list cl t))) ++ (mapc (lambda (x) (merge-inl cl x pl)) inls)) ++ + (defun ?add-inl (cl fms fm) +- (unless (or (member-if 'atomic-tp fms :key (lambda (x) (info-type (caddr x)))) +- (atomic-tp (info-type (cadr fm))) (exit-to-fmla-p)); (inls-match cl fms) +- (let* ((tps (mapcar (lambda (x) (info-type (caddr x))) fms)) +- (tr (mapcar (lambda (x &aux (v (car (last x)))) +- (when (and (consp v) (eq (car v) 'var)) +- (position (cddr v) fms :key 'cdddr :test 'equalp)));FIXME +- (if (eq (car fm) 'var) (list (list fm)) (fifth fm)))) +- (nat (let ((i -1)) (mapcan (lambda (x &aux (y (incf i))) (unless (atomic-tp x) (list y))) tps)))) +- (unless (or (member nil tr) (set-difference nat tr)) +- (let* ((pl (get-inl-list cl t)) +- (inl (lit-inl2 fm)) +- (z (member-if (lambda (x) (can-coalesce x tr inl tps)) (car pl)))) +- (cond (z (coalesce-inl cl (car z) tps (cdr (third inl))) +- (setf (cdr z) (remove-if (lambda (x) (can-coalesce x tr inl tps)) (cdr z)))) +- (pl +- (let ((x (list* tps tr inl))) +- (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-add) +- "Adding inl-hash ~s: ~s" (car cl) x) +- (push x (car pl)))))))))) ++ (let* ((tps (mapcar (lambda (x) (info-type (caddr x))) fms)) ++ (tr (mapcar (lambda (x &aux (v (car (last x)))) ++ (when (and (consp v) (eq (car v) 'var)) ++ (position (cddr v) fms :key 'cdddr :test 'equalp)));FIXME ++ (if (eq (car fm) 'var) (list (list fm)) (fifth fm))))) ++ (?update-fm-propagator fm cl tr tps) ++ (unless (skip-inl fm tps tr) ++ (merge-inl cl (list* tps tr (lit-inl2 fm)) (get-inl-list cl t))))) + + (defun prepend-comment (form s) + (if *annotate* + (si::string-concatenate "/* " (prin1-to-string form) " */" (remove-comment s)) + s)) + +-(defun apply-inl (cl fms &aux (inl (inls-match cl fms))) ++(defvar *apply-inl-hash* t) ++ ++(defun update-info-type-from-inl (i inl fms &aux (tps (mapcar (lambda (x) (info-type (caddr x))) fms))) ++ (setf (info-type i) ++ (reduce 'type-and ++ (cons (cdr (fifth inl)) ++ (mapcar (lambda (x) ++ (or ++ (result-type-from-args ++ (pop x) ++ (let ((i -1)) ++ (mapcar (lambda (tp &aux (p (position (incf i) (car x)))) ++ (if p (nth (nth p (second inl)) tps) tp)) ++ (cadr x)))) ++ t)) ++ (sixth inl))) ++ :initial-value (info-type i)))) ++ ++(defun merge-fm-propagator (x fms inl) ++ (let* ((tr (mapcar (lambda (x &aux (v (car (last x)))) ++ (when (and (consp v) (eq (car v) 'var)) ++ (position (cddr v) fms :key 'cdddr :test 'equalp)));FIXME ++ (fifth x)))) ++ (mapc (lambda (y) (?update-fm-propagator x y tr (caddr y))) ++ (sixth inl)))) ++ ++ ++(defun apply-inl (cl fms &aux (inl (when *apply-inl-hash* (inls-match cl fms)))) + (when inl + (let* ((c1fms (mapcar (lambda (x) (cdr (nth x fms))) (second inl)))) + (unless (member-if-not (lambda (x) +@@ -706,35 +751,56 @@ + (var (eq (var-kind (caaddr x)) 'lexical)) + ((lit location) t))) + c1fms) +- (cond ((zerop (length (car (last inl)))) +- (let* ((x (car c1fms))(h (pop x)) +- (i (copy-info (pop x)))) +- (setf (info-type i) (type-and (cdr (fifth inl)) (info-type i))) +- (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-apply) +- "Applying var inl-hash ~s" (car cl)) +- (list* h i x))) +- ((let ((x (c1lit (list (car (fifth inl)) (prepend-comment (cons 'applied cl) (car (last inl)))) (mapcar 'list (fourth inl) c1fms)))) +- (setf (info-type (cadr x)) (type-and (cdr (fifth inl)) (info-type (cadr x)))) +- (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-apply) +- "Applying inl-hash ~s: ~s: ~s" (car cl) (fourth x)) +- x))))))) ++ (let* ((z (zerop (length (car (last inl))))) ++ (x (if z ++ (list* (caar c1fms) (copy-info (cadar c1fms)) (cddar c1fms)) ++ (c1lit (list (car (fifth inl)) (prepend-comment (cons 'applied cl) (car (last inl)))) ++ (mapcar 'list (fourth inl) c1fms))))) ++ (unless z (merge-fm-propagator x fms inl)) ++ (update-info-type-from-inl (cadr x) inl fms) ++ (keyed-cmpnote (list (car cl) 'inl-hash 'inl-hash-apply) ++ "Applying inl-hash ~s: ~s" (car cl) (unless z (fourth x))) ++ x))))) ++ ++ ++(defun compress-inl (s &aux (i (car (gethash s *inl-hash*)))) ++ (when (> (length i) 1) ++ (let ((l (length i)) ++ (x (reduce (lambda (y x) ++ (list ++ (mapl (lambda (z w) (setf (car z) (type-or1 (car z) (car w)))) ++ (car y) (car x)) ++ (max (cadr y) (third x)))) ++ (cdr i) :initial-value (list (copy-list (caar i)) (third (car i))))) ++ (syms (mapcar (lambda (x) (declare (ignore x)) (gensym)) (make-list (length (caar i)))))) ++ (compile nil `(lambda ,syms ++ (declare (optimize (safety ,(cadr x))) ++ ,@(mapcar (lambda (x y) (list (cmp-unnorm-tp x) y)) (car x) syms)) ++ (,s ,@syms))) ++ (when (< (length (car (gethash s *inl-hash*))) l) ++ (format t "compress-inl ~s: ~s -> ~s~%" s l (length (car (gethash s *inl-hash*)))))))) + +-(defun dump-inl-hash (f) ++(defun dump-inl-hash (f &optional compress &aux (si::*print-package* t)) ++ (when compress (maphash (lambda (x y) (declare (ignore y)) (compress-inl x)) *inl-hash*)) + (with-open-file (s f :direction :output) + (prin1 '(in-package :compiler) s) + (terpri s) + (maphash (lambda (x y) + (prin1 +- `(setf (gethash ',x *inl-hash*) +- (list +- (list +- ,@(mapcar (lambda (z) +- `(list (mapcar 'uniq-tp ',(mapcar 'export-type (pop z))) +- ',(pop z) ',(pop z) ',(pop z) +- (cons ',(caar z) (uniq-tp ',(cdar z))) +- ,(cadr z))) +- (car y))))) +- s) ++ `(merge-inls ++ ',x ++ (list ++ ,@(mapcar (lambda (z) ++ `(list (mapcar 'uniq-tp ',(mapcar 'export-type (pop z))) ++ ',(pop z) ',(pop z) ',(pop z) ++ (cons ',(caar z) (uniq-tp ',(cdar z))) ++ (list ,@(mapcan ++ (lambda (x) ++ `((list ',(pop x) ',(pop x) ',(mapcar 'export-type (car x))))) ++ (cadr z))) ++ ,(caddr z))) ++ (car y)))) ++ s) + (terpri s)) + *inl-hash*)) + nil) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpinline.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpinline.lsp +@@ -355,7 +355,7 @@ + (coerce-loc *value-to-go* type))) + + +-(defun lit-loc (key inl args bind safety oargs stores &aux (tp (get key 'cmp-lisp-type))) ++(defun lit-loc (key inl args bind safety oargs syms stores &aux (tp (get key 'cmp-lisp-type))) + (declare (ignore bind safety oargs stores)) + (let ((sig (list (mapcar (lambda (x) (info-type (cadr x))) args) tp))) + (get-inline-loc (list (car sig) (cadr sig) (flags rfa) inl) args))) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptag.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptag.lsp +@@ -130,7 +130,7 @@ + "Initializing ~s at label ~s:~% type from ~s to ~s,~% store from ~s to ~s" + (car x) (tag-name z) (var-type (car x)) (cadr x) + (var-store (car x)) (if (eq (var-store (car x)) (caddr x)) (caddr x) +opaque+)) +- (do-setq-tp (car x) 'mch-set (cadr x));FIXME too prolix ++ (do-setq-tp (car x) '(mch-set) (cadr x));FIXME too prolix + (push-vbinds (car x) (caddr x))) + l)) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp +@@ -865,14 +865,14 @@ + (incf i lff)(copy-list ff));FIXME? + ((incf i)(list x)))) + nargs)) +- (form (list 'lit info key inl nargs nil lev oargs (make-vs info)))) ++ (form (list 'lit info key inl nargs nil lev oargs nil (make-vs info)))) + (when (find #\= inl) + (c1side-effects nil) + (setf (info-flags info) (logior (iflags side-effects) (info-flags info)))) + (setf (sixth form) (new-bind form)) + form)) + +-(defun c2lit (key inl args bind safety &rest r &aux (oargs (pop r)) (stores (car r)) (tp (get key 'cmp-lisp-type :opaque))) ++(defun c2lit (key inl args bind safety &rest r &aux (oargs (pop r)) (syms (pop r)) (stores (car r)) (tp (get key 'cmp-lisp-type :opaque))) + (declare (dynamic-extent r)) + (let* ((*inline-blocks* 0) + (*restore-avma* *restore-avma*) +@@ -881,7 +881,7 @@ + (*compiler-new-safety* *compiler-new-safety*) + (*compiler-push-events* *compiler-push-events*)) + (local-compile-decls `((safety ,safety))) +- (unwind-exit (lit-loc key inl args bind safety oargs stores) nil ++ (unwind-exit (lit-loc key inl args bind safety oargs syms stores) nil + (cons 'values (if (equal tp #t(returns-exactly)) 0 1))) + (close-inline-blocks))) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptype.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptype.lsp +@@ -731,7 +731,7 @@ + (keyed-cmpnote (list (var-name v) 'type-propagation 'type 'bump-cons-tp-if) + "Bumping var ~s cons type ~s -> ~s, tp ~s" + (var-name v) (cmp-unnorm-tp (var-type v)) (cmp-unnorm-tp (tp-or (var-type v) tp)) (cmp-unnorm-tp tp)) +- (do-setq-tp v 'bump-cons-tp-if (tp-or (var-type v) tp)))) ++ (do-setq-tp v '(bump-cons-tp-if) (tp-or (var-type v) tp)))) + (let ((s (var-store v))) + (when (listp s);FIXME + (dolist (b s) +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_2ore5" ++"Version_2_7_2pre6" + +--- gcl27-2.7.1.orig/info/c-interface.texi ++++ gcl27-2.7.1/info/c-interface.texi +@@ -50,7 +50,7 @@ Unsigned versions available are: + + Complex float and complex double types can be access via: + +- :fcomplex :dcomples ++ :fcomplex :dcomplex + + Pointers to types available are + +--- gcl27-2.7.1.orig/o/assignment.c ++++ gcl27-2.7.1/o/assignment.c +@@ -184,7 +184,7 @@ DEFUN("FSET",object,fSfset,SI,2,2,NONE,O + sym->s.s_gfdef = function; + sym->s.s_mflag = TRUE; + } else { +- sym->s.s_gfdef = function; ++ sym->s.s_gfdef = function; /*FIXME*/ + sym->s.s_mflag = FALSE; + } + +--- gcl27-2.7.1.orig/o/num_arith.c ++++ gcl27-2.7.1/o/num_arith.c +@@ -1001,25 +1001,25 @@ number_divide(object x, object y) + + case t_complex: + COMPLEX: ++ ++ x = number_to_complex(x); ++ y = number_to_complex(y); ++ + { +- object z1, z2, z3; + +- x = number_to_complex(x); +- y = number_to_complex(y); +- z1 = number_times(y->cmp.cmp_real, y->cmp.cmp_real); +- z2 = number_times(y->cmp.cmp_imag, y->cmp.cmp_imag); +- z3 = number_plus(z1, z2); +- /* if (number_zerop(z3 = number_plus(z1, z2))) DIVISION_BY_ZERO(sLD,list(2,x,y)); */ +- z1 = number_times(x->cmp.cmp_real, y->cmp.cmp_real); +- z2 = number_times(x->cmp.cmp_imag, y->cmp.cmp_imag); +- z1 = number_plus(z1, z2); +- z = number_times(x->cmp.cmp_imag, y->cmp.cmp_real); +- z2 = number_times(x->cmp.cmp_real, y->cmp.cmp_imag); +- z2 = number_minus(z, z2); +- z1 = number_divide(z1, z3); +- z2 = number_divide(z2, z3); +- z = make_complex(z1, z2); +- return(z); ++ object yl=y->cmp.cmp_real,ys=y->cmp.cmp_imag,xl=x->cmp.cmp_real,xs=x->cmp.cmp_imag,r,dn,w; ++ int s; ++ ++ if ((s=(number_compare(number_abs(y->cmp.cmp_real),number_abs(y->cmp.cmp_imag))<0))) { ++ w=ys;ys=yl;yl=w;w=xs;xs=xl;xl=w; ++ } ++ ++ r=number_divide(ys,yl); ++ dn=number_plus(yl,number_times(r,ys)); ++ w=number_times(xl,r); ++ ++ return make_complex(number_divide(number_plus(xl,number_times(xs,r)),dn), ++ number_divide(s ? number_minus(w,xs) : number_minus(xs,w),dn)); + } + + default: +--- gcl27-2.7.1.orig/xgcl-2/gcl_editors.lsp ++++ gcl27-2.7.1/xgcl-2/gcl_editors.lsp +@@ -131,7 +131,7 @@ + (draw-line-xy w (offsetx + 12) (offsety + 35) + (offsetx + 12) + (offsety + 48 + hdel * ((val - nmin) / ndel)) 7) +- (editors-update-in-box val w offsetx offsety 40 20)))) ++ (editors-update-in-box val w offsetx offsety 40 20))) + + + ; 20 Nov 91; 03 Dec 91; 15 Oct 93; 02 Dec 93; 08 Jan 04 diff --git a/debian/patches/Version_2_7_2pre7 b/debian/patches/Version_2_7_2pre7 new file mode 100644 index 00000000..1cf50a2f --- /dev/null +++ b/debian/patches/Version_2_7_2pre7 @@ -0,0 +1,156 @@ +Description: + TODO: Put a short summary on the line above and replace this paragraph + with a longer explanation of this change. Complete the meta-information + with other relevant fields (see below for details). To make it easier, the + information below has been extracted from the changelog. Adjust it or drop + it. + . + gcl27 (2.7.1-8) unstable; urgency=medium + . + * Bug fix: "FTBFS: /tmp/gazonk_6005_0.c:21:63: error: implicit + declaration of function '__builtin_c23_va_start'; did you mean + '__builtin_ms_va_start'? [-Wimplicit-function-declaration]", + thanks to Santiago Vila (Closes: #1114119). + * Version_2_7_2pre7 +Author: Camm Maguire +Bug-Debian: https://bugs.debian.org/1114119 + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-Debian: https://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: +Last-Update: 2025-09-21 + +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -7000,6 +7000,61 @@ fi + + + ++add_arg_to_cppflags() { ++ ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CPPFLAG $1" >&5 ++printf %s "checking for CPPFLAG $1... " >&6; } ++ CPPFLAGS_ORI=$CPPFLAGS ++ CPPFLAGS="$CPPFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`" ++ if test "$cross_compiling" = yes ++then : ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf "%s\n" "no" >&6; } ++else case e in #( ++ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main (void) ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_run "$LINENO" ++then : ++ CPPFLAGS="$CPPFLAGS_ORI $1";{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf "%s\n" "yes" >&6; };return 0 ++else case e in #( ++ e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf "%s\n" "no" >&6; } ;; ++esac ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ;; ++esac ++fi ++ ++ CPPFLAGS=$CPPFLAGS_ORI ++ return 1 ++ ++} ++ ++assert_arg_to_cppflags() { ++ if ! add_arg_to_cppflags $1 ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot add $1 to CPPFLAGS" >&5 ++printf "%s\n" "cannot add $1 to CPPFLAGS" >&6; }; exit 1 ; fi ++ return 0 ++} ++ ++add_args_to_cppflags() { ++ ++ while test "$#" -ge 1 ; do ++ add_arg_to_cppflags $1 ++ shift ++ done ++} ++ + add_arg_to_cflags() { + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLAG $1" >&5 +@@ -7127,6 +7182,8 @@ printf "%s\n" "removing $1 from LDFLAGS" + + } + ++add_args_to_cppflags -std=gnu17 ++ + add_args_to_cflags -fsigned-char -pipe -fcommon \ + -fno-builtin-malloc -fno-builtin-free \ + -fno-PIE -fno-pie -fno-PIC -fno-pic \ +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -170,6 +170,34 @@ fi + AC_SUBST(GCL_CC) + AC_SUBST(CPP) + ++add_arg_to_cppflags() { ++ ++ AC_MSG_CHECKING([for CPPFLAG $1]) ++ CPPFLAGS_ORI=$CPPFLAGS ++ CPPFLAGS="$CPPFLAGS -Werror $1 `echo $1|sed 's,-Wno-,-W,1'`" ++ AC_RUN_IFELSE( ++ [AC_LANG_PROGRAM([[]],[[]])], ++ [CPPFLAGS="$CPPFLAGS_ORI $1";AC_MSG_RESULT([yes]);return 0], ++ [AC_MSG_RESULT([no])], ++ [AC_MSG_RESULT([no])]) ++ CPPFLAGS=$CPPFLAGS_ORI ++ return 1 ++ ++} ++ ++assert_arg_to_cppflags() { ++ if ! add_arg_to_cppflags $1 ; then AC_MSG_RESULT([cannot add $1 to CPPFLAGS]); exit 1 ; fi ++ return 0 ++} ++ ++add_args_to_cppflags() { ++ ++ while test "$#" -ge 1 ; do ++ add_arg_to_cppflags $1 ++ shift ++ done ++} ++ + add_arg_to_cflags() { + + AC_MSG_CHECKING([for CFLAG $1]) +@@ -242,6 +270,8 @@ remove_arg_from_ldflags() { + + } + ++add_args_to_cppflags -std=gnu17 ++ + add_args_to_cflags -fsigned-char -pipe -fcommon \ + -fno-builtin-malloc -fno-builtin-free \ + -fno-PIE -fno-pie -fno-PIC -fno-pic \ +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_2pre6" ++"Version_2_7_2pre7" + diff --git a/debian/patches/Version_2_7_2pre8 b/debian/patches/Version_2_7_2pre8 new file mode 100644 index 00000000..b7d356d4 --- /dev/null +++ b/debian/patches/Version_2_7_2pre8 @@ -0,0 +1,17403 @@ +Description: + TODO: Put a short summary on the line above and replace this paragraph + with a longer explanation of this change. Complete the meta-information + with other relevant fields (see below for details). To make it easier, the + information below has been extracted from the changelog. Adjust it or drop + it. + . + gcl27 (2.7.1-9) unstable; urgency=medium + . + * Version_2_7_2pre8 +Author: Camm Maguire + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-Debian: https://bugs.debian.org/ +Bug-Ubuntu: https://launchpad.net/bugs/ +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: +Last-Update: 2026-02-19 + +--- gcl27-2.7.1.orig/INSTALL ++++ gcl27-2.7.1/INSTALL +@@ -13,7 +13,10 @@ Basic Installation + + should configure, build, and install this package. The first line, + which bootstraps, is intended for developers; when building from +-distribution tarballs it does nothing and can be skipped. ++distribution tarballs it does nothing and can be skipped. A package ++might name the bootstrapping script differently; if the name is ++‘autogen.sh’, for example, the first line should say ‘./autogen.sh’ ++instead of ‘./bootstrap’. + + The following more-detailed instructions are generic; see the + ‘README’ file for instructions specific to this package. Some packages +@@ -25,23 +28,22 @@ found in the GNU Coding Standards. + Many packages have scripts meant for developers instead of ordinary + builders, as they may use developer tools that are less commonly + installed, or they may access the network, which has privacy +-implications. If the ‘bootstrap’ shell script exists, it attempts to +-build the ‘configure’ shell script and related files, possibly using +-developer tools or the network. Because the output of ‘bootstrap’ is +-system-independent, it is normally run by a package developer so that +-its output can be put into the distribution tarball and ordinary +-builders and users need not run ‘bootstrap’. Some packages have +-commands like ‘./autopull.sh’ and ‘./autogen.sh’ that you can run +-instead of ‘./bootstrap’, for more fine-grained control over +-bootstrapping. +- +- The ‘configure’ shell script attempts to guess correct values for +-various system-dependent variables used during compilation. It uses +-those values to create a ‘Makefile’ in each directory of the package. +-It may also create one or more ‘.h’ files containing system-dependent +-definitions. Finally, it creates a shell script ‘config.status’ that +-you can run in the future to recreate the current configuration, and a +-file ‘config.log’ containing output useful for debugging ‘configure’. ++implications. These scripts attempt to bootstrap by building the ++‘configure’ script and related files, possibly using developer tools or ++the network. Because the output of bootstrapping is system-independent, ++it is normally run by a package developer so that its output can be put ++into the distribution tarball and ordinary builders and users need not ++bootstrap. Some packages have commands like ‘./autopull.sh’ and ++‘./autogen.sh’ that you can run instead of ‘./bootstrap’, for more ++fine-grained control over bootstrapping. ++ ++ The ‘configure’ script attempts to guess correct values for various ++system-dependent variables used during compilation. It uses those ++values to create a ‘Makefile’ in each directory of the package. It may ++also create one or more ‘.h’ files containing system-dependent ++definitions. Finally, it creates a script ‘config.status’ that you can ++run in the future to recreate the current configuration, and a file ++‘config.log’ containing output useful for debugging ‘configure’. + + It can also use an optional file (typically called ‘config.cache’ and + enabled with ‘--cache-file=config.cache’ or simply ‘-C’) that saves the +@@ -64,9 +66,10 @@ editing ‘configure’ directly. + 1. ‘cd’ to the directory containing the package’s source code. + + 2. If this is a developer checkout and file ‘configure’ does not yet +- exist, type ‘./bootstrap’ to create it. You may need special +- developer tools and network access to bootstrap, and the network +- access may have privacy implications. ++ exist, run the bootstrapping script (typically ‘./bootstrap’ or ++ ‘./autogen.sh’) to bootstrap and create the file. You may need ++ special developer tools and network access to bootstrap, and the ++ network access may have privacy implications. + + 3. Type ‘./configure’ to configure the package for your system. This + might take a while. While running, ‘configure’ prints messages +@@ -101,6 +104,18 @@ editing ‘configure’ directly. + 9. If the package follows the GNU Coding Standards, you can type ‘make + uninstall’ to remove the installed files. + ++Installation Prerequisites ++========================== ++ ++ Installation requires a POSIX-like environment with a shell and at ++least the following standard utilities: ++ ++ awk cat cp diff echo expr false ls mkdir mv printf pwd rm rmdir sed ++ sort test tr ++ ++This package’s installation may need other standard utilities such as ++‘grep’, ‘make’, ‘sleep’ and ‘touch’, along with compilers like ‘gcc’. ++ + Compilers and Options + ===================== + +@@ -356,7 +371,7 @@ more details. + Copyright notice + ================ + +- Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2024 Free Software ++ Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2025 Free Software + Foundation, Inc. + + Copying and distribution of this file, with or without modification, +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -129,7 +129,7 @@ BASE_H= h/compbas2.h h/compbas.h h/compp + h/funlink.h h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \ + h/mp.h h/notcomp.h h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h h/pool.h \ + h/prelink.h h/protoize.h h/ptable.h h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \ +- h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h h/apply_n.h \ ++ h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h \ + gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h + CMPI_H= h/compdefs.h h/cmpincl1.h h/mgmp.h h/compprotos.h h/compbas2.h h/cmponly_last.h + ARCHT_H=h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \ +@@ -161,7 +161,7 @@ C_SRC=o/typespec.c o/alloc.c o/gbc.c o/b + D_SRC=o/character.d o/file.d o/gcl_readline.d o/hash.d o/list.d o/package.d o/pathname.d o/print.d\ + o/read.d o/sequence.d o/string.d o/symbol.d + BUILT_C=o/character.c o/file.c o/gcl_readline.c o/hash.c o/list.c o/package.c o/pathname.c o/print.c\ +- o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c ++ o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c o/qfv.c + + INI_FILES=$(patsubst %.c,%.ini,$(C_SRC)) $(patsubst %.d,%.ini,$(D_SRC)) + if AMM_GPROF +@@ -352,6 +352,7 @@ unixport/ansi_gcl: clcs/package.lisp clc + $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o : lsp/%.lsp + $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp + gcl0/%.o: | unixport/gcl0 ++ rm -f $(@D)/$*.done + $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ + [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ + ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link +@@ -359,6 +360,7 @@ gcl0/%.o: | unixport/gcl0 + $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp + $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp + gcl1/%.o: | unixport/gcl1 ++ rm -f $(@D)/$*.done + $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" \ + -eval "(setq compiler::*dump-inl-hash* t)" \ + -compile $< -o $@ +@@ -456,6 +458,9 @@ h/cmpincludea.h: $(filter-out gclincl.h, + $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + ++o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@ ++ + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h + @cat $^ >new_$(@F) + @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -1,7 +1,7 @@ +-# Makefile.in generated by automake 1.17 from Makefile.am. ++# Makefile.in generated by automake 1.18.1 from Makefile.am. + # @configure_input@ + +-# Copyright (C) 1994-2024 Free Software Foundation, Inc. ++# Copyright (C) 1994-2025 Free Software Foundation, Inc. + + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -197,13 +197,12 @@ am__lib_libbase_gcl_a_SOURCES_DIST = o/t + h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ + h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ + o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ +- h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ +- h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ +- h/cmponly_last.h h/elf32_armhf_reloc.h \ +- h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ +- h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ +- h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ +- h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ ++ h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \ ++ h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \ ++ h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \ ++ h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \ ++ h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \ ++ h/elf32_i386_reloc.h h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ + h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ + h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ + h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ +@@ -258,7 +257,7 @@ am__objects_4 = o/character.$(OBJEXT) o/ + o/gcl_readline.$(OBJEXT) o/hash.$(OBJEXT) o/list.$(OBJEXT) \ + o/package.$(OBJEXT) o/pathname.$(OBJEXT) o/print.$(OBJEXT) \ + o/read.$(OBJEXT) o/sequence.$(OBJEXT) o/string.$(OBJEXT) \ +- o/symbol.$(OBJEXT) o/new_init.$(OBJEXT) ++ o/symbol.$(OBJEXT) o/new_init.$(OBJEXT) o/qfv.$(OBJEXT) + nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_4) + lib_libbase_gcl_a_OBJECTS = $(am_lib_libbase_gcl_a_OBJECTS) \ + $(nodist_lib_libbase_gcl_a_OBJECTS) +@@ -287,13 +286,12 @@ am__lib_libbase_gcl_gprof_a_SOURCES_DIST + h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ + h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ + o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ +- h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ +- h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ +- h/cmponly_last.h h/elf32_armhf_reloc.h \ +- h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ +- h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ +- h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ +- h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ ++ h/compat.h gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h \ ++ h/compdefs.h h/cmpincl1.h h/mgmp.h h/cmponly_last.h \ ++ h/elf32_armhf_reloc.h h/elf32_armhf_reloc_special.h \ ++ h/elf32_arm_reloc.h h/elf32_arm_reloc_special.h \ ++ h/elf32_hppa_reloc.h h/elf32_hppa_reloc_special.h \ ++ h/elf32_i386_reloc.h h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ + h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ + h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ + h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ +@@ -399,7 +397,8 @@ am__objects_8 = o/lib_libbase_gcl_gprof_ + o/lib_libbase_gcl_gprof_a-sequence.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-string.$(OBJEXT) \ + o/lib_libbase_gcl_gprof_a-symbol.$(OBJEXT) \ +- o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT) ++ o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT) \ ++ o/lib_libbase_gcl_gprof_a-qfv.$(OBJEXT) + am__objects_9 = $(am__objects_8) + nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_9) + lib_libbase_gcl_gprof_a_OBJECTS = \ +@@ -572,6 +571,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po \ ++ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po \ +@@ -606,7 +606,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp. + o/$(DEPDIR)/number.Po o/$(DEPDIR)/package.Po \ + o/$(DEPDIR)/pathname.Po o/$(DEPDIR)/predicate.Po \ + o/$(DEPDIR)/prelink.Po o/$(DEPDIR)/print.Po \ +- o/$(DEPDIR)/prog.Po o/$(DEPDIR)/read.Po \ ++ o/$(DEPDIR)/prog.Po o/$(DEPDIR)/qfv.Po o/$(DEPDIR)/read.Po \ + o/$(DEPDIR)/reference.Po o/$(DEPDIR)/regexpr.Po \ + o/$(DEPDIR)/run_process.Po o/$(DEPDIR)/sequence.Po \ + o/$(DEPDIR)/sfasl.Po o/$(DEPDIR)/sockets.Po \ +@@ -1037,7 +1037,7 @@ BASE_H = h/compbas2.h h/compbas.h h/comp + h/funlink.h h/globals.h h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h h/lu.h h/make-init.h \ + h/mp.h h/notcomp.h h/num_include.h h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h h/pool.h \ + h/prelink.h h/protoize.h h/ptable.h h/rgbc.h h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h \ +- h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h h/apply_n.h \ ++ h/writable.h o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h h/compat.h \ + gcl-tk/sheader.h h/make-decl.h h/defun.h o/ntheap.h + + CMPI_H = h/compdefs.h h/cmpincl1.h h/mgmp.h h/compprotos.h h/compbas2.h h/cmponly_last.h +@@ -1071,7 +1071,7 @@ D_SRC = o/character.d o/file.d o/gcl_rea + o/read.d o/sequence.d o/string.d o/symbol.d + + BUILT_C = o/character.c o/file.c o/gcl_readline.c o/hash.c o/list.c o/package.c o/pathname.c o/print.c\ +- o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c ++ o/read.c o/sequence.c o/string.c o/symbol.c o/new_init.c o/qfv.c + + INI_FILES = $(patsubst %.c,%.ini,$(C_SRC)) $(patsubst \ + %.d,%.ini,$(D_SRC)) $(am__append_10) +@@ -1418,6 +1418,7 @@ o/sequence.$(OBJEXT): o/$(am__dirstamp) + o/string.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/symbol.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + o/new_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) ++o/qfv.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) + lib/$(am__dirstamp): + @$(MKDIR_P) lib + @: >>lib/$(am__dirstamp) +@@ -1588,6 +1589,8 @@ o/lib_libbase_gcl_gprof_a-symbol.$(OBJEX + o/$(DEPDIR)/$(am__dirstamp) + o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) ++o/lib_libbase_gcl_gprof_a-qfv.$(OBJEXT): o/$(am__dirstamp) \ ++ o/$(DEPDIR)/$(am__dirstamp) + + lib/libbase_gcl_gprof.a: $(lib_libbase_gcl_gprof_a_OBJECTS) $(lib_libbase_gcl_gprof_a_DEPENDENCIES) $(EXTRA_lib_libbase_gcl_gprof_a_DEPENDENCIES) lib/$(am__dirstamp) + $(AM_V_at)-rm -f lib/libbase_gcl_gprof.a +@@ -1850,6 +1853,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po@am__quote@ # am--include-marker +@@ -1897,6 +1901,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/prelink.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/print.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/prog.Po@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/qfv.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/read.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/reference.Po@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/regexpr.Po@am__quote@ # am--include-marker +@@ -3086,6 +3091,20 @@ o/lib_libbase_gcl_gprof_a-new_init.obj: + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-new_init.obj `if test -f 'o/new_init.c'; then $(CYGPATH_W) 'o/new_init.c'; else $(CYGPATH_W) '$(srcdir)/o/new_init.c'; fi` + ++o/lib_libbase_gcl_gprof_a-qfv.o: o/qfv.c ++@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-qfv.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo -c -o o/lib_libbase_gcl_gprof_a-qfv.o `test -f 'o/qfv.c' || echo '$(srcdir)/'`o/qfv.c ++@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/qfv.c' object='o/lib_libbase_gcl_gprof_a-qfv.o' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-qfv.o `test -f 'o/qfv.c' || echo '$(srcdir)/'`o/qfv.c ++ ++o/lib_libbase_gcl_gprof_a-qfv.obj: o/qfv.c ++@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-qfv.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo -c -o o/lib_libbase_gcl_gprof_a-qfv.obj `if test -f 'o/qfv.c'; then $(CYGPATH_W) 'o/qfv.c'; else $(CYGPATH_W) '$(srcdir)/o/qfv.c'; fi` ++@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/qfv.c' object='o/lib_libbase_gcl_gprof_a-qfv.obj' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-qfv.obj `if test -f 'o/qfv.c'; then $(CYGPATH_W) 'o/qfv.c'; else $(CYGPATH_W) '$(srcdir)/o/qfv.c'; fi` ++ + o/lib_libgprof_a-gprof.o: o/gprof.c + @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_libgprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libgprof_a-gprof.o -MD -MP -MF o/$(DEPDIR)/lib_libgprof_a-gprof.Tpo -c -o o/lib_libgprof_a-gprof.o `test -f 'o/gprof.c' || echo '$(srcdir)/'`o/gprof.c + @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libgprof_a-gprof.Tpo o/$(DEPDIR)/lib_libgprof_a-gprof.Po +@@ -3849,6 +3868,7 @@ cscopelist-am: $(am__tagged_files) + distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files ++ + distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +@@ -3902,6 +3922,10 @@ dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + ++dist-bzip3: distdir ++ tardir=$(distdir) && $(am__tar) | bzip3 -c >$(distdir).tar.bz3 ++ $(am__post_remove_distdir) ++ + dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) +@@ -3946,6 +3970,8 @@ distcheck: dist + eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ ++ *.tar.bz3*) \ ++ bzip3 -dc $(distdir).tar.bz3 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ +@@ -4186,6 +4212,7 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po ++ -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po +@@ -4233,6 +4260,7 @@ distclean: distclean-am + -rm -f o/$(DEPDIR)/prelink.Po + -rm -f o/$(DEPDIR)/print.Po + -rm -f o/$(DEPDIR)/prog.Po ++ -rm -f o/$(DEPDIR)/qfv.Po + -rm -f o/$(DEPDIR)/read.Po + -rm -f o/$(DEPDIR)/reference.Po + -rm -f o/$(DEPDIR)/regexpr.Po +@@ -4508,6 +4536,7 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prelink.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-print.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-prog.Po ++ -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-qfv.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-read.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-reference.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-regexpr.Po +@@ -4555,6 +4584,7 @@ maintainer-clean: maintainer-clean-am + -rm -f o/$(DEPDIR)/prelink.Po + -rm -f o/$(DEPDIR)/print.Po + -rm -f o/$(DEPDIR)/prog.Po ++ -rm -f o/$(DEPDIR)/qfv.Po + -rm -f o/$(DEPDIR)/read.Po + -rm -f o/$(DEPDIR)/reference.Po + -rm -f o/$(DEPDIR)/regexpr.Po +@@ -4625,9 +4655,9 @@ uninstall-man: uninstall-man1 + clean-local clean-my_gcltkPROGRAMS clean-my_unixportLIBRARIES \ + clean-my_unixportPROGRAMS clean-noinstLIBRARIES \ + clean-noinstPROGRAMS cscope cscopelist-am ctags ctags-am dist \ +- dist-all dist-bzip2 dist-gzip dist-info dist-lzip dist-shar \ +- dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ +- distclean-compile distclean-generic distclean-hdr \ ++ dist-all dist-bzip2 dist-bzip3 dist-gzip dist-info dist-lzip \ ++ dist-shar dist-tarZ dist-xz dist-zip dist-zstd distcheck \ ++ distclean distclean-compile distclean-generic distclean-hdr \ + distclean-local distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binSCRIPTS install-data \ +@@ -4778,6 +4808,7 @@ unixport/ansi_gcl: clcs/package.lisp clc + $(addprefix gcl0/,$(LL_OBJS)): gcl0/%.o : lsp/%.lsp + $(addprefix gcl0/,$(LC_OBJS)): gcl0/%.o : cmpnew/%.lsp + gcl0/%.o: | unixport/gcl0 ++ rm -f $(@D)/$*.done + $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" -compile $< -o $@ + [ "$*" = "gcl_c" ] || [ "$*" = "gcl_listlib" ] || \ + ln -f $@ $$(echo $@ |sed 's,\.o,\.done,g') #FIXME directory link +@@ -4785,6 +4816,7 @@ gcl0/%.o: | unixport/gcl0 + $(addprefix gcl1/,$(LL_OBJS)): gcl1/%.o : lsp/%.lsp + $(addprefix gcl1/,$(LC_OBJS)): gcl1/%.o : cmpnew/%.lsp + gcl1/%.o: | unixport/gcl1 ++ rm -f $(@D)/$*.done + $| -eval "(mapc 'load (directory \"$(@D)/*.done\"))" \ + -eval "(setq compiler::*dump-inl-hash* t)" \ + -compile $< -o $@ +@@ -4874,6 +4906,9 @@ h/cmpincludea.h: $(filter-out gclincl.h, + $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) - | \ + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + ++o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk ++ $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@ ++ + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h + @cat $^ >new_$(@F) + @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ +--- gcl27-2.7.1.orig/aclocal.m4 ++++ gcl27-2.7.1/aclocal.m4 +@@ -1,6 +1,6 @@ +-# generated automatically by aclocal 1.17 -*- Autoconf -*- ++# generated automatically by aclocal 1.18.1 -*- Autoconf -*- + +-# Copyright (C) 1996-2024 Free Software Foundation, Inc. ++# Copyright (C) 1996-2025 Free Software Foundation, Inc. + + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -20,7 +20,7 @@ You have another version of autoconf. I + If you have problems, you may need to regenerate the build system entirely. + To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +-# Copyright (C) 2002-2024 Free Software Foundation, Inc. ++# Copyright (C) 2002-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -32,10 +32,10 @@ To do so, use the procedure documented b + # generated from the m4 files accompanying Automake X.Y. + # (This private macro should not be called outside this file.) + AC_DEFUN([AM_AUTOMAKE_VERSION], +-[am__api_version='1.17' ++[am__api_version='1.18' + dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to + dnl require some minimum version. Point them to the right macro. +-m4_if([$1], [1.17], [], ++m4_if([$1], [1.18.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl + ]) + +@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) + # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. + # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. + AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +-[AM_AUTOMAKE_VERSION([1.17])dnl ++[AM_AUTOMAKE_VERSION([1.18.1])dnl + m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl + _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + + # AM_AUX_DIR_EXPAND -*- Autoconf -*- + +-# Copyright (C) 2001-2024 Free Software Foundation, Inc. ++# Copyright (C) 2001-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` + + # AM_CONDITIONAL -*- Autoconf -*- + +-# Copyright (C) 1997-2024 Free Software Foundation, Inc. ++# Copyright (C) 1997-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -141,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE( + Usually this means the macro was only invoked conditionally.]]) + fi])]) + +-# Copyright (C) 1999-2024 Free Software Foundation, Inc. ++# Copyright (C) 1999-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -332,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl + + # Generate code to set up dependency tracking. -*- Autoconf -*- + +-# Copyright (C) 1999-2024 Free Software Foundation, Inc. ++# Copyright (C) 1999-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -400,7 +400,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS] + + # Do all the work for Automake. -*- Autoconf -*- + +-# Copyright (C) 1996-2024 Free Software Foundation, Inc. ++# Copyright (C) 1996-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -500,8 +500,9 @@ AC_REQUIRE([AC_PROG_AWK])dnl + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AM_SET_LEADING_DOT])dnl + _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], +- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], +- [_AM_PROG_TAR([v7])])]) ++ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], ++ [_AM_IF_OPTION([tar-v7], [_AM_PROG_TAR([v7])], ++ [_AM_PROG_TAR([ustar])])])]) + _AM_IF_OPTION([no-dependencies],, + [AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], +@@ -577,7 +578,7 @@ for _am_header in $config_headers :; do + done + echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +-# Copyright (C) 2001-2024 Free Software Foundation, Inc. ++# Copyright (C) 2001-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -598,7 +599,7 @@ if test x"${install_sh+set}" != xset; th + fi + AC_SUBST([install_sh])]) + +-# Copyright (C) 2003-2024 Free Software Foundation, Inc. ++# Copyright (C) 2003-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -617,7 +618,7 @@ fi + rmdir .tst 2>/dev/null + AC_SUBST([am__leading_dot])]) + +-# Copyright (C) 1996-2024 Free Software Foundation, Inc. ++# Copyright (C) 1996-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -666,7 +667,7 @@ AC_SUBST([lispdir]) + + # Check to see how 'make' treats includes. -*- Autoconf -*- + +-# Copyright (C) 2001-2024 Free Software Foundation, Inc. ++# Copyright (C) 2001-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -709,7 +710,7 @@ AC_SUBST([am__quote])]) + + # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +-# Copyright (C) 1997-2024 Free Software Foundation, Inc. ++# Copyright (C) 1997-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -743,7 +744,7 @@ fi + + # Helper functions for option handling. -*- Autoconf -*- + +-# Copyright (C) 2001-2024 Free Software Foundation, Inc. ++# Copyright (C) 2001-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -772,7 +773,7 @@ AC_DEFUN([_AM_SET_OPTIONS], + AC_DEFUN([_AM_IF_OPTION], + [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +-# Copyright (C) 1999-2024 Free Software Foundation, Inc. ++# Copyright (C) 1999-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -804,7 +805,10 @@ AC_CACHE_CHECK( + break + fi + done +- rm -f core conftest* ++ # aligned with autoconf, so not including core; see bug#72225. ++ rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \ ++ conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \ ++ conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM + unset am_i]) + if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. +@@ -819,7 +823,7 @@ AC_LANG_POP([C])]) + # For backward compatibility. + AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +-# Copyright (C) 2022-2024 Free Software Foundation, Inc. ++# Copyright (C) 2022-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -835,7 +839,7 @@ AS_IF([(rm -f && rm -fr && rm -rf) 2>/de + AC_SUBST(am__rm_f_notfound) + ]) + +-# Copyright (C) 2001-2024 Free Software Foundation, Inc. ++# Copyright (C) 2001-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -854,7 +858,7 @@ AC_DEFUN([AM_RUN_LOG], + + # Check to make sure that the build environment is sane. -*- Autoconf -*- + +-# Copyright (C) 1996-2024 Free Software Foundation, Inc. ++# Copyright (C) 1996-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -1023,10 +1027,12 @@ am_lf=' + ' + case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) ++ AC_MSG_RESULT([no]) + AC_MSG_ERROR([unsafe absolute working directory name]);; + esac + case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) ++ AC_MSG_RESULT([no]) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; + esac + +@@ -1079,7 +1085,7 @@ AC_CONFIG_COMMANDS_PRE( + rm -f conftest.file + ]) + +-# Copyright (C) 2009-2024 Free Software Foundation, Inc. ++# Copyright (C) 2009-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -1148,9 +1154,13 @@ fi + # empty being verbose). + AC_DEFUN([AM_SILENT_RULES], + [AC_REQUIRE([_AM_SILENT_RULES]) +-AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])]) ++AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])m4_newline ++dnl We intentionally force a newline after the assignment, since a) nothing ++dnl good can come of more text following, and b) that was the behavior ++dnl before 1.17. See https://bugs.gnu.org/72267. ++]) + +-# Copyright (C) 2001-2024 Free Software Foundation, Inc. ++# Copyright (C) 2001-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -1178,7 +1188,7 @@ fi + INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +-# Copyright (C) 2006-2024 Free Software Foundation, Inc. ++# Copyright (C) 2006-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -1197,7 +1207,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_ + + # Check how to create a tarball. -*- Autoconf -*- + +-# Copyright (C) 2004-2024 Free Software Foundation, Inc. ++# Copyright (C) 2004-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -1332,7 +1342,7 @@ AC_SUBST([am__tar]) + AC_SUBST([am__untar]) + ]) # _AM_PROG_TAR + +-# Copyright (C) 2022-2024 Free Software Foundation, Inc. ++# Copyright (C) 2022-2025 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +--- gcl27-2.7.1.orig/ansi-tests/stable-sort.lsp ++++ gcl27-2.7.1/ansi-tests/stable-sort.lsp +@@ -174,6 +174,9 @@ + i x y z)) + (7 3 2 1) 3 1 2 3) + ++(deftest stable-sort.order.3 ++ (stable-sort "A1A2A3A4A5A6a1a2a3a4a5a6" 'char-lessp) ++ "112233445566AAAAAAaaaaaa") + + ;;; Error cases + +--- /dev/null ++++ gcl27-2.7.1/bin/c23.awk +@@ -0,0 +1,38 @@ ++#!/usr/bin/awk -f ++ ++/^ *ufixnum *maxargs_for_awk *=/ {gsub("="," ");gsub(";"," ");maxargs=$NF+0;next} ++ ++/^ *awk_generated_vc_apply_n_lines;$/ { ++ ++ if (!maxargs) {printf("error: maxargs unset\n");exit(-1);} ++ ++ for (n=1;n<=maxargs;n++) { ++ for (m=n;m;m--) { ++ printf("\n\tcase %d*%d+%d: return ((object(*)(",n,maxargs+1,m); ++ for (i=0;i + #include + #include ++#include + + #include "gclincl.h" + #include "config.h" +@@ -81,8 +82,6 @@ + #define TRUE 1 + #define FALSE 0 + +-typedef int bool; +- + FILE *in, *out; + + char filename[BUFSIZ]; +@@ -128,9 +127,8 @@ char *result[MAXRES]; + int nres; + + void +-error(s) +-char *s; +-{ ++error(char *s) { ++ + printf("Error in line %d: %s.\n", line, s); + exit(0); + } +@@ -165,9 +163,8 @@ nextc() + } + + void +-unreadc(c) +-int c; +-{ ++unreadc(int c) { ++ + if (c == '\n') + --line; + else if (c == '\t') +@@ -176,9 +173,8 @@ int c; + } + + void +-put_tabs(n) +-int n; +-{ ++put_tabs(int n) { ++ + int i; + + for (i = 0; i < n; i++) +@@ -186,9 +182,8 @@ int n; + } + + void +-pushc(c) +-int c; +-{ ++pushc(int c) { ++ + if (poolp >= &pool[POOLSIZE]) + error("buffer bool overflow"); + *poolp++ = c; +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpcall.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpcall.lsp +@@ -52,6 +52,75 @@ + (defvar *use-sfuncall* t) + (defvar *super-funcall* nil) + ++;; (defun c2funcall (funob args &optional loc) ++ ++;; (unless (listp args) ++;; (if *compiler-push-events* ++;; (wt-nl "super_funcall(" loc ");") ++;; (if *super-funcall* ++;; (funcall *super-funcall* loc) ++;; (wt-nl "super_funcall_no_event(" loc ");"))) ++;; (unwind-exit 'fun-val) ++;; (return-from c2funcall nil)) ++ ++;; (unless (eq 'ordinary (car funob)) (baboon)) ++ ++;; (let* ((fn (caddr funob)) ++;; (all (cons fn args)) ++;; (*inline-blocks* 0)) ++;; (setq *sup-used* t) ++;; (unwind-exit ++;; (get-inline-loc ++;; (list (make-list (length all) :initial-element t) ++;; '* #.(flags ans set svt) ++;; (concatenate 'string ++;; "({object _z,_f=#0;fixnum _v=(fixnum)#v; ++;; fcall.fun=_f;fcall.valp=_v;fcall.argd=#n-1; ++;; _z=Rset && !(_f)->fun.fun_argd && ++;; fcall.argd>=(_f)->fun.fun_minarg && fcall.argd<=((_f)->fun.fun_maxarg) ? ++;; " ++;; (if args ++;; "(_f)->fun.fun_self(#*)" ++;; "((_f)->fun.fun_maxarg ? (_f)->fun.fun_self(#?) : (_f)->fun.fun_self(#*))") ++;; " : call_proc_cs2(#?); ++;; if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup; ++;; _z;})")) all)) ++;; (close-inline-blocks))) ++ ++;; (defun c2funcall (funob args &optional loc) ++ ++;; (unless (listp args) ++;; (if *compiler-push-events* ++;; (wt-nl "super_funcall(" loc ");") ++;; (if *super-funcall* ++;; (funcall *super-funcall* loc) ++;; (wt-nl "super_funcall_no_event(" loc ");"))) ++;; (unwind-exit 'fun-val) ++;; (return-from c2funcall nil)) ++ ++;; (unless (eq 'ordinary (car funob)) (baboon)) ++ ++;; (let* ((fn (caddr funob)) ++;; (all (cons fn args)) ++;; (*inline-blocks* 0)) ++;; (setq *sup-used* t) ++;; (unwind-exit ++;; (get-inline-loc ++;; (list (make-list (length all) :initial-element t) ++;; '* #.(flags ans set svt) ++;; (concatenate 'string ++;; "({object _z,_f=#0;fixnum _v=(fixnum)#v; ++;; fcall.fun=_f;fcall.valp=_v;fcall.argd=#n-1; ++;; _z=Rset && !(_f)->fun.fun_argd && ++;; fcall.argd>=(_f)->fun.fun_minarg && fcall.argd<=((_f)->fun.fun_maxarg) ? ++;; ({object _b[]={#*}; ++;; quick_call_function_vec(_f,sizeof(_b)/sizeof(*_b),_b);}) : ++;; call_proc_cs2(#?); ++;; if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup; ++;; _z;})")) all)) ++;; (close-inline-blocks))) ++ ++ + (defun c2funcall (funob args &optional loc) + + (unless (listp args) +@@ -67,24 +136,35 @@ + + (let* ((fn (caddr funob)) + (all (cons fn args)) ++ (la1 (1- (length all))) + (*inline-blocks* 0)) + (setq *sup-used* t) + (unwind-exit + (get-inline-loc + (list (make-list (length all) :initial-element t) + '* #.(flags ans set svt) +- (concatenate 'string +- "({object _z,_f=#0;fixnum _v=(fixnum)#v; +- fcall.fun=_f;fcall.valp=_v;fcall.argd=#n-1; +- _z=Rset && !(_f)->fun.fun_argd && +- fcall.argd>=(_f)->fun.fun_minarg && fcall.argd<=((_f)->fun.fun_maxarg) ? +- " +- (if args +- "(_f)->fun.fun_self(#*)" +- "((_f)->fun.fun_maxarg ? (_f)->fun.fun_self(#?) : (_f)->fun.fun_self(#*))") +- " : call_proc_cs2(#?); +- if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup; +- _z;})")) all)) ++ (ms ++ "({object _z,_f=fcall.fun=#0;fixnum _v=fcall.valp=(fixnum)#v;char _n=fcall.argd=#n-1; ++ _n=Rset && ++ !_f->fun.fun_argd && ++ _n>=_f->fun.fun_minarg && ++ _n<=(_f->fun.fun_maxarg) ? ++ _f->fun.fun_minarg-_n : -(MAX_ARGS+1); ++ switch (_n) { ++ case 0: _z=_f->fun.fun_minarg==_f->fun.fun_maxarg ? ++ (" (gcst la1) "_f->fun.fun_self)(#*) : ++ (" (gcst (max 1 la1) t) "_f->fun.fun_self)(#?);break; ++ " ++ (let ((i 0)) ++ (mapcan (lambda (x &aux (j (decf i))) ++ (declare (ignore x)) ++ (list "case " (write-to-string j) ": _z=(" (gcst (max 1 (+ j la1)) t) "_f->fun.fun_self)(#?);break; ++ ")) ++ (make-list (max 0 la1)))) ++ "default: _z=call_proc_cs2(#?);break; ++ } ++ if (!_f->fun.fun_neval && !_f->fun.fun_vv) vs_top=_v ? (object *)_v : sup; ++ _z;})")) all)) + (close-inline-blocks))) + + +@@ -391,6 +471,63 @@ + + ;;make a function which will be called hopefully only once, + ;;and will establish the link. ++ ++(defun stub-decl (name args d &optional vp ++ &aux (i 0)) ++ (concatenate ++ 'string ++ "static " d " " name ;" LnkT" num ++ "(" ++ (apply 'concatenate 'string ++ (mapcan (lambda (x) ++ (if (eq x '*) ++ (list ",...") ++ (list (if (plusp i) "," "") ++ (rep-type x) ++ (progn (incf i) (if vp (concatenate 'string "x" (write-to-string i)) ""))))) ++ (if (eq (car args) '*) (cons t args) args))) ++ ")")) ++ ++ ++(defun stub (num name args type clp ++ &aux (va (eq '* (car (last args)))) (n (if va 1 0))(i (max n (- (length args) n)));FIXME ++ (d (declaration-type (rep-type (if (link-arg-p type) type t))))) ++ (concatenate ++ 'string ++ (stub-decl (concatenate 'string "LnkT" num) args d t) ++ "{ ++ int nargs=" (if va "fcall.argd<0 ? -fcall.argd : fcall.argd" (write-to-string i)) "; ++ object *FOO=alloca(nargs*sizeof(*FOO)); ++ " ++ ++ (let ((j 0)) ++ (apply 'concatenate 'string ++ (mapcan (lambda (x &aux (sj (write-to-string (incf j)))) ++ (declare (ignore x)) ++ (list "FOO[" sj "-1]=(object)x" sj ";")) ++ (make-list i)))) ++ (when va ++ (concatenate ++ 'string ++ " ++ { ++ va_list ap; ++ va_start(ap,x" (write-to-string i) "); ++ int i; ++ for (i=" (write-to-string i) ";ifun.fun_self") nm)) ++ (als (cdr (mapcan (lambda (x) (list "," (if (eq x '*) "..." "object"))) (car sig)))) ++ (nm (if clp (ms "((object(*)(" als "))" clp "->fun.fun_self)") nm)) + (inl (g1 clp nm sig ap clp (if clp -1 (fun-level fun))))) + `(,(adj-call-tps-max (car sig)) ,(cadr sig) + ,(if mv (flags rfa svt) (flags rfa)) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpfun.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpfun.lsp +@@ -111,23 +111,25 @@ + ;; stream) + ;; (list 'call-global info 'terpri (list stream)))) + ++(defun gcst (n &optional e) ++ (ms "(object(*)(" (cdr (mapcan (lambda (x) (declare (ignore x)) (list "," "object")) (make-list n))) (when e ",...") "))")) + + (defun c2apply (funob args) + (unless (eq 'ordinary (car funob)) (baboon)) + (let* ((fn (caddr funob)) + (all (cons fn args)) ++ (la2 (- (length all) 2)) + (*inline-blocks* 0)) + (setq *sup-used* t) + (unwind-exit + (get-inline-loc + (list (make-list (length all) :initial-element t) + '* #.(flags ans set svt) +- (concatenate +- 'string ++ (ms + "({fixnum _v=(fixnum)#v;object _z,_f=(#0),_l=(#1),_ll=_l; + object _x4=Cnil,_x3=Cnil,_x2=Cnil,_x1=Cnil,_x0=Cnil; +- char _m=(#n-2),_q=_f->fun.fun_minarg>_m ? _f->fun.fun_minarg-_m : 0; +- char _n=Rset && !_f->fun.fun_argd ? _q : -1; ++ char _m=(#n-2),_n=Rset && !_f->fun.fun_argd ? _f->fun.fun_minarg-_m : -(MAX_ARGS+1); ++ char _reg=_f->fun.fun_minarg==_f->fun.fun_maxarg; + fcall.fun=_f;fcall.valp=_v;fcall.argd=-(#n-1); + switch (_n) { + case 5: if (_l==Cnil) {_n=-1;break;} _x4=_l->c.c_car;_l=_l->c.c_cdr; +@@ -135,21 +137,30 @@ + case 3: if (_l==Cnil) {_n=-1;break;} _x2=_l->c.c_car;_l=_l->c.c_cdr; + case 2: if (_l==Cnil) {_n=-1;break;} _x1=_l->c.c_car;_l=_l->c.c_cdr; + case 1: if (_l==Cnil) {_n=-1;break;} _x0=_l->c.c_car;_l=_l->c.c_cdr; +- case 0: if (_n+_m+(_l==Cnil ? 0 : 1)>_f->fun.fun_maxarg) _n=-1; else fcall.argd-=_n; +- default: break; ++ case 0: if (_n+_m+(_l==Cnil ? 0 : 1)>_f->fun.fun_maxarg) _n=-(MAX_ARGS+1); else fcall.argd-=_n; ++ default: if (_m+(_l==Cnil ? 0 : 1)>_f->fun.fun_maxarg) _n=-(MAX_ARGS+1);break; + } + switch (_n) { +- case 5: _z=_f->fun.fun_self(#*_x4,_x3,_x2,_x1,_x0,_l);break; +- case 4: _z=_f->fun.fun_self(#*_x3,_x2,_x1,_x0,_l);break; +- case 3: _z=_f->fun.fun_self(#*_x2,_x1,_x0,_l);break; +- case 2: _z=_f->fun.fun_self(#*_x1,_x0,_l);break; +- case 1: _z=_f->fun.fun_self(#*_x0,_l);break; +- case 0: _z=" +- (if (cdr args) +- "_f->fun.fun_self(#*_l)" +- "(_f->fun.fun_maxarg ? _f->fun.fun_self(#*_l) : _f->fun.fun_self())") +- ";break; +- default: _z=call_proc_cs2(#*_ll);break; ++ case 5: _z=_reg ? (" (gcst (+ 5 la2)) "_f->fun.fun_self)(#*_x4,_x3,_x2,_x1,_x0) : ++ (" (gcst (+ 5 la2) t) "_f->fun.fun_self)(#*_x4,_x3,_x2,_x1,_x0,_l);break; ++ case 4: _z=_reg ? (" (gcst (+ 4 la2)) "_f->fun.fun_self)(#*_x3,_x2,_x1,_x0) : ++ (" (gcst (+ 4 la2) t) "_f->fun.fun_self)(#*_x3,_x2,_x1,_x0,_l);break; ++ case 3: _z=_reg ? (" (gcst (+ 3 la2)) "_f->fun.fun_self)(#*_x2,_x1,_x0) : ++ (" (gcst (+ 3 la2) t) "_f->fun.fun_self)(#*_x2,_x1,_x0,_l);break; ++ case 2: _z=_reg ? (" (gcst (+ 2 la2)) "_f->fun.fun_self)(#*_x1,_x0) : ++ (" (gcst (+ 2 la2) t) "_f->fun.fun_self)(#*_x1,_x0,_l);break; ++ case 1: _z=_reg ? (" (gcst (+ 1 la2)) "_f->fun.fun_self)(#*_x0) : ++ (" (gcst (+ 1 la2) t) "_f->fun.fun_self)(#*_x0,_l);break; ++ case 0: _z=_reg ? (" (gcst (+ 0 la2)) "_f->fun.fun_self)(#*) : ++ (" (gcst (max 1 (+ 0 la2)) t) "_f->fun.fun_self)(#*_l);break; ++ " ++ (let ((i 0)) ++ (mapcan (lambda (x) ++ (declare (ignore x)) ++ (list "case " (write-to-string (decf i)) ": _z=(" (gcst (max 1 (+ i la2)) t) "_f->fun.fun_self)(#*_l);break; ++ ")) ++ (make-list (max 0 la2)))) ++ "default: _z=call_proc_cs2(#*_ll);break; + } + if (!(_f)->fun.fun_neval && !(_f)->fun.fun_vv) vs_top=_v ? (object *)_v : sup; + _z;})")) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpinline.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpinline.lsp +@@ -946,8 +946,8 @@ + ((eql ch #\n) + (wt (length locs))) + ((or (eql ch #\*) (eql ch #\?)) +- (let* ((f (char= (char fun (1- i)) #\()) +- (e (char= (char fun (+ 2 i)) #\))) ++ (let* ((f (member (char fun (1- i)) '(#\( #\{))) ++ (e (member (char fun (+ 2 i)) '(#\) #\}))) + (locs (nthcdr max locs)) + (locs (or locs (when (eql ch #\?) `((fixnum-value nil 0)))))) + (dolist (v locs (unless (or f e) (wt ","))) +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpmain.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpmain.lsp +@@ -180,12 +180,23 @@ + (when tem (truename tem)))))) + ((setf (car *split-files*) (+ (third *split-files*) section-length)))))) + ++(defun pathname-type-prefix (tp) ++ (if (stringp tp) (subseq tp 0 (1+ (string-match #v"\\.[^\\.]*$" tp))) "")) ++ ++(defun compile-file-pathname (pathname &key output-file &allow-other-keys) ++ (declare (optimize (safety 1))) ++ (check-type pathname pathname-designator) ++ (check-type output-file (or null pathname-designator)) ++ (or output-file ++ (make-pathname :defaults pathname ++ :type (strcat (pathname-type-prefix (pathname-type pathname)) "o")))) ++ + (defvar *init-name* nil) + (defvar *function-filename* nil) + (defvar *c-debug* nil) + (defvar *dump-inl-hash* nil) + (defun compile-file1 (input-pathname +- &key (output-file (merge-pathnames ".o" (truename input-pathname))) ++ &key (output-file (compile-file-pathname (truename input-pathname))) + (o-file t) + (c-file *default-c-file*) + (h-file *default-h-file*) +@@ -242,12 +253,9 @@ Cannot compile ~a.~%" (namestring (merge + (when (consp *split-files*) + (file-position *compiler-input* (third *split-files*)) + (setq output-file +- (make-pathname :device (pathname-device output-file) +- :directory (pathname-directory output-file) +- :name (format nil "~a~a" +- (pathname-name output-file) +- (length (second *split-files*))) +- :type "o"))) ++ (merge-pathnames ++ (format nil "~a~a" (pathname-name output-file) (length (second *split-files*))) ++ output-file))) + + (with-open-file (s output-file :if-does-not-exist :create)) + (setq *init-name* (init-name output-file t)) +@@ -256,16 +264,15 @@ Cannot compile ~a.~%" (namestring (merge + (namestring (truename (pathname *compiler-input*))))) + + (let* ((eof (cons nil nil)) +- (dir (or (unless (null output-file) (pathname-directory output-file)) (pathname-directory input-pathname))) +- (name (or (unless (null output-file) (pathname-name output-file)) (pathname-name input-pathname))) +- (tp (or (unless (null output-file) (pathname-type output-file)) "o")) +- (device (or (unless (null output-file) (pathname-device output-file)) (pathname-device input-pathname))) +- (o-pathname (get-output-pathname o-file tp name dir device)) +- (c-pathname (get-output-pathname c-file "c" name dir device)) +- (h-pathname (get-output-pathname h-file "h" name dir device)) +- (data-pathname (get-output-pathname data-file "data" name dir device))) +- +- (declare (special dir name));FIXME ++ (device (pathname-device output-file)) ++ (dir (pathname-directory output-file)) ++ (name (pathname-name output-file)) ++ (typ (pathname-type output-file)) ++ (tp (pathname-type-prefix typ)) ++ (o-pathname (get-output-pathname o-file typ name dir device)) ++ (c-pathname (get-output-pathname c-file (strcat tp "c") name dir device)) ++ (h-pathname (get-output-pathname h-file (strcat tp "h") name dir device)) ++ (data-pathname (get-output-pathname data-file (strcat tp "data") name dir device))) + + (init-env) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmpopt.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmpopt.lsp +@@ -1162,7 +1162,8 @@ + (setf (get s 'lisp-type) l))) + + (dolist (l '((object t)(plist proper-list)(float short-float)(double long-float) +- (pack (or null package)) (direl (or keyword null string)))) ++ (pack (or null package)) (direl (or keyword null string)) ++ (dirdir (or (eql :unspecific) proper-list)))) + (let ((s (intern (symbol-name (car l)) 'keyword))) + (setf (get s 'lisp-type) (cadr l)))) + +--- gcl27-2.7.1.orig/cmpnew/gcl_cmptop.lsp ++++ gcl27-2.7.1/cmpnew/gcl_cmptop.lsp +@@ -179,7 +179,7 @@ + (defun init-name (p &optional sp) + + (if sp +- (let* ((p (truename (merge-pathnames p #p".lsp"))) ++ (let* ((p (truename p)) + (pn (pathname-name p)) + (g (zerop (si::string-match #v"^gcl_" pn)))) + (dash-to-underscore +@@ -338,19 +338,8 @@ + + (when (eq type 'proclaimed-closure) + (wt-h "static object *Lclptr"num";")) +- +- (if (and (not (null type)) +- (not (eq type 'proclaimed-closure)) +- (or args (not (eq t type)))) +- (progn +- (wt-h "static " d " LnkT" num "(object,...);") +- #-sgi3d (wt-h "static " d " (*Lnk" num ")() = (" +- d "(*)()) LnkT" num ";") +- #+sgi3d (wt-h "static " d " (*Lnk" num ")();")) +- (progn +- (wt-h "static " d " LnkT" num "();") +- #-sgi3d (wt-h "static " d " (*Lnk" num ")() = LnkT" num ";") +- #+sgi3d (wt-h "static " d " (*Lnk" num ")();")))))) ++ (wt-h (stub-decl (concatenate 'string "LnkT" num) args d) ";") ++ (wt-h (stub-decl (concatenate 'string "(*Lnk" num ")") args d) "=LnkT" num ";")))) + + + ;; this default will be as close to the the decision of the x3j13 committee +@@ -1127,19 +1116,34 @@ + (let ((x (position x +c-global-arg-types+ :test 'type<=))) + (if x (1+ x) 0)))) + +-(defconstant +max-typed-args+ +- (let ((x (cdr (tp-bnds (cadr (si::sig 'c-function-argd)))))) +- (if (typep x 'fixnum) (1- (truncate (integer-length x) 2)) 0))) ++(defun argd-sz nil ++ (labels ((ff (x) (when (consp x) (if (eq (car x) 'the) (cdr (tp-bnds (cmp-norm-tp (cadr x)))) (or (ff (car x)) (ff (cdr x))))))) ++ (ff (fle 'c-function-argd)))) ++ ++(defconstant +real-max-typed-args+ ++ (labels ((ret-max (x) ++ (when (consp x) ++ (if (eq (car x) 'the) ++ (1- (truncate (integer-length (cdr (tp-bnds (cmp-norm-tp (cadr x))))) 2)) ++ (or (ret-max (car x)) (ret-max (cdr x))))))) ++ (ret-max (fle 'c-function-argd)))) ++ ++(defconstant +max-typed-args+ #+pre-gcl 0 #-pre-gcl +real-max-typed-args+) + + (defun adj-call-tps-max (tps &aux (i -1)) + (mapcar (lambda (x) (type-or1 (>= (incf i) +max-typed-args+) x)) tps)) + +-(defun new-proclaimed-argd (args return) +- (do* ((type (f-type return) (f-type (pop args))) +- (i 0 (+ 2 i)) +- (ans type (logior ans (ash type i)))) +- ((or (>= i #.(ash +max-typed-args+ 1)) (null args)) +- (the (unsigned-byte #.(1+ (ash +max-typed-args+ 1))) ans)))) ++(defun new-proclaimed-argd (args return &aux (i 0)) ++ (reduce (lambda (y x &aux (j (incf i))) ++ (if (> j +max-typed-args+) y (logior y (ash (f-type x) (ash j 1)))));FIXME fragile wrt pre-gcl ++ args :initial-value (f-type return))) ++ ++;; (defun new-proclaimed-argd (args return) ++;; (do* ((type (f-type return) (f-type (pop args))) ++;; (i 0 (+ 2 i)) ++;; (ans type (logior ans (ash type i)))) ++;; ((or (>= i #.(ash +max-typed-args+ 1)) (null args)) ++;; (the (unsigned-byte #.(ash (1+ +real-max-typed-args+) 1)) ans)))) + + (defun type-f (x) + (declare (fixnum x)) +--- gcl27-2.7.1.orig/compile ++++ gcl27-2.7.1/compile +@@ -1,9 +1,9 @@ + #! /bin/sh + # Wrapper for compilers which do not understand '-c -o'. + +-scriptversion=2024-06-19.01; # UTC ++scriptversion=2025-06-18.21; # UTC + +-# Copyright (C) 1999-2024 Free Software Foundation, Inc. ++# Copyright (C) 1999-2025 Free Software Foundation, Inc. + # Written by Tom Tromey . + # + # This program is free software; you can redistribute it and/or modify +@@ -37,11 +37,11 @@ IFS=" "" $nl" + + file_conv= + +-# func_file_conv build_file lazy ++# func_file_conv build_file unneeded_conversions + # Convert a $build file to $host form and store it in $file + # Currently only supports Windows hosts. If the determined conversion +-# type is listed in (the comma separated) LAZY, no conversion will +-# take place. ++# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no ++# conversion will take place. + func_file_conv () + { + file=$1 +@@ -51,9 +51,20 @@ func_file_conv () + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) +- file_conv=mingw ++ if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then ++ # MSYS2 environment. ++ file_conv=cygwin ++ else ++ # Original MinGW environment. ++ file_conv=mingw ++ fi + ;; +- CYGWIN* | MSYS*) ++ MSYS*) ++ # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell. ++ file_conv=cygwin ++ ;; ++ CYGWIN*) ++ # Cygwin environment. + file_conv=cygwin + ;; + *) +@@ -63,12 +74,14 @@ func_file_conv () + fi + case $file_conv/,$2, in + *,$file_conv,*) ++ # This is the optimization mentioned above: ++ # If UNNEEDED_CONVERSIONS contains $file_conv, don't convert. + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; +- cygwin/* | msys/*) +- file=`cygpath -m "$file" || echo "$file"` ++ cygwin/*) ++ file=`cygpath -w "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` +@@ -343,9 +356,9 @@ exit $ret + # Local Variables: + # mode: shell-script + # sh-indentation: 2 +-# eval: (add-hook 'before-save-hook 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp nil t) + # time-stamp-start: "scriptversion=" +-# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-format: "%Y-%02m-%02d.%02H" + # time-stamp-time-zone: "UTC0" + # time-stamp-end: "; # UTC" + # End: +--- gcl27-2.7.1.orig/configure ++++ gcl27-2.7.1/configure +@@ -2996,7 +2996,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_config_headers="$ac_config_headers h/gclincl.h" + +-am__api_version='1.17' ++am__api_version='1.18' + + + +@@ -3266,10 +3266,14 @@ am_lf=' + ' + case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf "%s\n" "no" >&6; } + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; + esac + case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf "%s\n" "no" >&6; } + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; + esac + +@@ -5476,7 +5480,10 @@ _ACEOF + break + fi + done +- rm -f core conftest* ++ # aligned with autoconf, so not including core; see bug#72225. ++ rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \ ++ conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \ ++ conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM + unset am_i ;; + esac + fi +@@ -6703,7 +6710,10 @@ _ACEOF + break + fi + done +- rm -f core conftest* ++ # aligned with autoconf, so not including core; see bug#72225. ++ rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \ ++ conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \ ++ conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM + unset am_i ;; + esac + fi +@@ -7182,12 +7192,9 @@ printf "%s\n" "removing $1 from LDFLAGS" + + } + +-add_args_to_cppflags -std=gnu17 +- + add_args_to_cflags -fsigned-char -pipe -fcommon \ + -fno-builtin-malloc -fno-builtin-free \ + -fno-PIE -fno-pie -fno-PIC -fno-pic \ +- -std=gnu17 \ + -Wall \ + -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \ + -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ +--- gcl27-2.7.1.orig/configure.ac ++++ gcl27-2.7.1/configure.ac +@@ -270,12 +270,9 @@ remove_arg_from_ldflags() { + + } + +-add_args_to_cppflags -std=gnu17 +- + add_args_to_cflags -fsigned-char -pipe -fcommon \ + -fno-builtin-malloc -fno-builtin-free \ + -fno-PIE -fno-pie -fno-PIC -fno-pic \ +- -std=gnu17 \ + -Wall \ + -Wno-builtin-requires-header -Wno-empty-body -Wno-self-assign \ + -Wno-unused-but-set-variable -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 \ +--- gcl27-2.7.1.orig/depcomp ++++ gcl27-2.7.1/depcomp +@@ -1,9 +1,9 @@ + #! /bin/sh + # depcomp - compile a program generating dependencies as side-effects + +-scriptversion=2024-06-19.01; # UTC ++scriptversion=2025-06-18.21; # UTC + +-# Copyright (C) 1999-2024 Free Software Foundation, Inc. ++# Copyright (C) 1999-2025 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -784,9 +784,9 @@ exit 0 + # Local Variables: + # mode: shell-script + # sh-indentation: 2 +-# eval: (add-hook 'before-save-hook 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp nil t) + # time-stamp-start: "scriptversion=" +-# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-format: "%Y-%02m-%02d.%02H" + # time-stamp-time-zone: "UTC0" + # time-stamp-end: "; # UTC" + # End: +--- gcl27-2.7.1.orig/gcl-tk/comm.c ++++ gcl27-2.7.1/gcl-tk/comm.c +@@ -79,8 +79,7 @@ setup_connection_state(int fd) + + /* P is supposed to start with a hdr and run N bytes. */ + static void +-scan_headers(sfd) +- struct connection_state *sfd; ++scan_headers(struct connection_state *sfd) + { struct our_header *hdr; + char *p = sfd->valid_data + sfd->next_packet_offset; + int n = sfd->valid_data_size - sfd->next_packet_offset; +@@ -118,11 +117,7 @@ send_confirmation(struct connection_stat + */ + + static int +-read1(sfd,p,m,timeout) +-struct connection_state* sfd; +-char *p; +-int timeout; +-int m; ++read1(struct connection_state* sfd,char *p,int m,int timeout) + { int nread=0; + int wanted = m; + int length; +@@ -217,10 +212,7 @@ static void + connection_failure(char *); + + int +-write1(sfd,p,bytes) +- struct connection_state *sfd; +- const char *p; +- int bytes; ++write1(struct connection_state *sfd,const char *p,int bytes) + { + int bs; + int to_send = bytes; +--- gcl27-2.7.1.orig/gcl-tk/guis.c ++++ gcl27-2.7.1/gcl-tk/guis.c +@@ -93,7 +93,7 @@ int fDebugSockets; + + int hdl = -1; + +-void TkX_Wish (); ++void TkX_Wish (int,char *[]); + + pid_t parent; + +@@ -335,11 +335,7 @@ char *envp[]; + } + + struct connection_state * +-sock_connect_to_name(host_id, name, async) +- char *host_id; +- int name; +- int async; +- ++sock_connect_to_name(char *host_id,int name,int async) + { + struct sockaddr_in addr; + int fd, n, rc; +@@ -360,8 +356,7 @@ sock_connect_to_name(host_id, name, asy + } + + void +-sock_close_connection(sfd) +-struct connection_state *sfd; ++sock_close_connection(struct connection_state *sfd) + { + close( sfd->fd ); + free(sfd->read_buffer); +@@ -387,16 +382,8 @@ struct connection_state *sfd; + static int message_id; + + int +-sock_write_str2( sfd, type, hdr, +- hdrsize,text, length ) +- +-struct connection_state *sfd; +-enum mtype type; +- char *hdr; +-int hdrsize; +-const char *text; +-int length; +- ++sock_write_str2(struct connection_state *sfd,enum mtype type,char *hdr, ++ int hdrsize,const char *text,int length ) + { + char buf[0x1000]; + char *p = buf; +@@ -447,10 +434,7 @@ int length; + + + struct message_header * +-guiParseMsg1(sfd,buf,bufleng) +- char *buf; +-int bufleng; +-struct connection_state *sfd; ++guiParseMsg1(struct connection_state *sfd,char *buf,int bufleng) + { int m; + int body_length; + int tot; +@@ -489,12 +473,10 @@ error(s) + } + + void +-write_timeout_error(s) +- char *s; ++write_timeout_error(char *s) + { fprintf(stderr,"write timeout: %s",s); abort(); + } + void +-connection_failure(s) +- char *s; ++connection_failure(char *s) + { fprintf(stderr,"connection_failure:%s",s); abort(); + } +--- gcl27-2.7.1.orig/gcl-tk/guis.h ++++ gcl27-2.7.1/gcl-tk/guis.h +@@ -70,14 +70,14 @@ typedef struct _guiMsg { + */ + + #include "sheader.h" +-struct message_header * guiParseMsg1(); ++struct message_header *guiParseMsg1(struct connection_state *,char *,int); + + + extern pid_t parent; + +-struct connection_state * +-sock_connect_to_name(); +-void sock_close_connection( ); ++struct connection_state *sock_connect_to_name(char *,int,int); ++void sock_close_connection(struct connection_state *); ++ + int sock_read_str(); + + guiMsg *guiParseMsg(); +--- gcl27-2.7.1.orig/gcl-tk/sheader.h ++++ gcl27-2.7.1/gcl-tk/sheader.h +@@ -109,4 +109,4 @@ extern struct connection_state *dsfd; + #define OBJ_TO_CONNECTION_STATE(x) \ + ((struct connection_state *)(void *)((x)->ust.ust_self)) + +-struct connection_state * setup_connection_state(); ++struct connection_state * setup_connection_state(int); +--- gcl27-2.7.1.orig/gcl-tk/tkAppInit.c ++++ gcl27-2.7.1/gcl-tk/tkAppInit.c +@@ -61,8 +61,7 @@ int *tclDummyMainPtr = (int *) main; + */ + + int +-Tcl_AppInit(interp) +- Tcl_Interp *interp; /* Interpreter for application. */ ++Tcl_AppInit(Tcl_Interp *interp)/* Interpreter for application. */ + { + Tk_Window mmain; + /* +--- gcl27-2.7.1.orig/gcl-tk/tkMain.c ++++ gcl27-2.7.1/gcl-tk/tkMain.c +@@ -57,8 +57,9 @@ + #include + #include + #include ++#include + +-int writable_malloc=0; /*FIXME, don't wrap fopen here, exclude notcomp.h or equivalent */ ++bool writable_malloc=0; /*FIXME, don't wrap fopen here, exclude notcomp.h or equivalent */ + + #include "guis.h" + struct connection_state *dsfd; +@@ -128,8 +129,7 @@ dfprintf(FILE *fp,char *s,...) { + #define SIGNAL_ERROR TCL_signal_error + + static void +-TCL_signal_error(x) +- char *x; ++TCL_signal_error(char *x) + {char buf[300] ; + snprintf(buf,sizeof(buf),"error %s",x); + Tcl_Eval(interp,buf); +@@ -196,9 +196,7 @@ EXTERN Tk_Window TkCreateMainWindow _ANS + char * screenName, char * baseName)); + + void +-TkX_Wish (argc, argv) +- int argc; /* Number of arguments. */ +- char **argv; /* Array of argument strings. */ ++TkX_Wish (int argc,char **argv) + { + char *args, *p; + const char *msg; +@@ -402,18 +400,11 @@ static char *being_set_by_lisp; + + static char * + tell_lisp_var_changed( +- clientData, +- interp, +- name1, +- name2, +- flags) +- +- ClientData clientData; +- Tcl_Interp *interp; +- char *name1; +- char *name2; +- int flags; +- ++ ClientData clientData, ++ Tcl_Interp *interp, ++ const char *name1, ++ const char *name2, ++ int flags) + { + + if (being_set_by_lisp == 0) +@@ -459,9 +450,7 @@ tell_lisp_var_changed( + + /* ARGSUSED */ + static void +-StdinProc(clientData, mask) +- ClientData clientData; /* Not used. */ +- int mask; /* Not used. */ ++StdinProc(ClientData clientData,int mask) + { + int fNotDone; + char *cmd; +@@ -606,13 +595,9 @@ typedef struct _ClientDataLispObject { + } ClientDataLispObject; + + static int +-TclGenericCommandProcedure( clientData, +- pinterp, +- argc, argv) +- ClientData clientData; +- Tcl_Interp *pinterp; +- int argc; +- char *argv[]; ++TclGenericCommandProcedure(ClientData clientData, ++ Tcl_Interp *pinterp, ++ int argc,const char **argv) + { + char szCmd[CMD_SIZE]; + ClientDataLispObject *pcdlo = (ClientDataLispObject *)clientData; +@@ -623,7 +608,7 @@ TclGenericCommandProcedure( clientData, + STORE_3BYTES(q,(pcdlo->iSlot)); + q += 3; + if (p == 0) +- { char *arg = (argc > 1 ? argv[1] : ""); ++ { const char *arg = (argc > 1 ? argv[1] : ""); + int m = strlen(arg); + if (m > CMD_SIZE -50) + SIGNAL_ERROR("too big command"); +@@ -663,8 +648,7 @@ TclGenericCommandProcedure( clientData, + + + static void +-guiCreateCommand( idLispObject, iSlot , arglist) +- int idLispObject; int iSlot ; char *arglist; ++guiCreateCommand(int idLispObject,int iSlot,char *arglist) + { + char szNameCmdProc[2000],*c; + ClientDataLispObject *pcdlo; +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_2pre7" ++"Version_2_7_2pre8" + +--- gcl27-2.7.1.orig/git_touch ++++ gcl27-2.7.1/git_touch +@@ -1,7 +1,15 @@ + #!/bin/bash + +-touch aclocal.m4 \ +- configure.ac gcl-tk/gcltksrv.in bin/gcl.in unixport/init_raw.lsp.in h/gclincl.h.in \ ++SLEEP=$1 ++ ++for i in \ ++ configure.ac aclocal.m4 gcl-tk/gcltksrv.in bin/gcl.in unixport/init_raw.lsp.in h/gclincl.h.in \ + configure \ + Makefile.am Makefile.in \ +- info/gcl.info info/gcl-si.info info/gcl-tk.info info/gcl-dwdoc.info ++ info/gcl.info info/gcl-si.info info/gcl-tk.info info/gcl-dwdoc.info ; do ++ touch $i ++ if [ "$SLEEP" != "" ] ; then ++ echo $i ++ sleep $SLEEP ++ fi ++done +--- gcl27-2.7.1.orig/h/att_ext.h ++++ gcl27-2.7.1/h/att_ext.h +@@ -144,7 +144,6 @@ EXTER object FASL_string; + /* frame.c */ + + /* gbc.c */ +-EXTER bool GBC_enable; + + #ifdef CAN_UNRANDOMIZE_SBRK + EXTER bool gcl_unrandomized; +@@ -418,4 +417,4 @@ EXTER object sSPmemory; + EXTER object sSPinit; + + /* string.d */ +-int (*casefun)(); ++int (*casefun)(int,int *); +--- gcl27-2.7.1.orig/h/cmponly_last.h ++++ gcl27-2.7.1/h/cmponly_last.h +@@ -5,3 +5,6 @@ + /* #undef _setjmp */ + /* #define _setjmp ((int(*)(void *))dlsetjmp) */ + /* #endif */ ++ ++int setjmp(void *); ++int _setjmp(void *); +--- gcl27-2.7.1.orig/h/compdefs.h ++++ gcl27-2.7.1/h/compdefs.h +@@ -93,3 +93,5 @@ aref1 + OBJ_ALIGNED_STACK_ALLOC(x) + NO_RETURN + CHAR_SIZE ++MAX_ARGS ++bool +--- gcl27-2.7.1.orig/h/compprotos.h ++++ gcl27-2.7.1/h/compprotos.h +@@ -16,9 +16,8 @@ int number_zerop(object); + long int fixint(object); + object alloc_object(enum type); + object call_proc_cs2(object,...); +-object call_proc_new(object,ufixnum,ufixnum,void **,ufixnum,object,va_list); +-object call_proc_new_nval(object,ufixnum,ufixnum,void **,ufixnum,object,...); +-object coerce_to_string(); ++object call_proc_new23(object,ufixnum,ufixnum,void **,ufixnum,object *); ++object coerce_to_string(object); + object fixnum_big_shift(fixnum,fixnum); + object fixnum_times(fixnum,fixnum); + object fSgensym0(void); +@@ -102,6 +101,4 @@ object file_stream(object); + fixnum fixnum_expt(fixnum, fixnum); + char *gcl_gets(char *,int); + int gcl_puts(const char *); +-int setjmp(); +-int _setjmp(); + char *object_to_string(object); +--- gcl27-2.7.1.orig/h/error.h ++++ gcl27-2.7.1/h/error.h +@@ -99,7 +99,7 @@ object ihs_top_function_name(ihs_ptr h); + sKformat_control,make_simple_string(a_),sKformat_arguments,list(1,(b_))) + #define FEtoo_few_arguments(a_,b_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ +- sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\ ++ sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\ + sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_)))) + #define FEwrong_no_args(a_,b_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ +@@ -112,7 +112,7 @@ object ihs_top_function_name(ihs_ptr h); + + #define FEtoo_many_arguments(a_,b_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ +- sKformat_control,make_simple_string("~S [or a callee] requires less than ~R argument~:p."),\ ++ sKformat_control,make_simple_string("~S [or a callee] requires more than ~R argument~:p."),\ + sKformat_arguments,list(2,ihs_top_function_name(ihs_top),make_fixnum((b_)-(a_)))) + #define FEtoo_many_argumentsF(a_) \ + Icall_error_handler(sLprogram_error,null_string,4,\ +--- gcl27-2.7.1.orig/h/linux.h ++++ gcl27-2.7.1/h/linux.h +@@ -165,7 +165,7 @@ do { int c = 0; \ + #else + + #define FPE_TCODE(x_) \ +- {ufixnum _x=(x_),_y=0; \ ++ ({ufixnum _x=(x_),_y=0; \ + switch(_x) { \ + case FPE_FLTINV: _y=FE_INVALID;break; \ + case FPE_FLTDIV: _y=FE_DIVBYZERO;break; \ +@@ -174,7 +174,7 @@ do { int c = 0; \ + case FPE_FLTRES: _y=FE_INEXACT;break; \ + } \ + _y; \ +- } ++ }) + #define FPE_CODE(i_,v_) make_fixnum(FPE_TCODE((fixnum)SF(i_)->si_code)) + #define FPE_ADDR(i_,v_) make_fixnum((fixnum)SF(i_)->si_addr) + #define FPE_CTXT(v_) Cnil +--- gcl27-2.7.1.orig/h/lu.h ++++ gcl27-2.7.1/h/lu.h +@@ -47,6 +47,7 @@ typedef void (*vfunc)(); + typedef object integer; + typedef object keyword; + typedef object direl; ++typedef object dirdir; + typedef object plist; + typedef object pack; + typedef object real; +@@ -57,8 +58,7 @@ typedef float shortfloat; + typedef double longfloat; + typedef float complex fcomplex; + typedef double complex dcomplex; +-#undef bool +-typedef int bool; ++#include + typedef unsigned short int ushort; + typedef unsigned int uint; + +@@ -462,7 +462,7 @@ struct pathname { + + direl pn_host; /* host */ + direl pn_device; /* device */ +- plist pn_directory; /* directory */ ++ dirdir pn_directory; /* directory */ + direl pn_name; /* name */ + direl pn_type; /* type */ + direl pn_version; /* version */ +--- gcl27-2.7.1.orig/h/notcomp.h ++++ gcl27-2.7.1/h/notcomp.h +@@ -10,7 +10,7 @@ + + + EXTER int *cs_org; +-EXTER int GBC_enable; ++EXTER bool GBC_enable; + + #define CHAR_SIZE 8 + EXTER object sSAnotify_gbcA; +@@ -20,7 +20,7 @@ EXTER int interrupt_flag,interrupt_enabl + /* void sigint(),sigalrm(); */ + + +-EXTER int gc_enabled, saving_system; ++EXTER bool gc_enabled, saving_system; + + EXTER object lisp_package,user_package; + EXTER char *core_end; +--- gcl27-2.7.1.orig/h/protoize.h ++++ gcl27-2.7.1/h/protoize.h +@@ -366,7 +366,7 @@ object funcall_vec(object,fixnum,object + /* unixtime.c:173:OF */ extern void gcl_init_unixtime (void); /* () */ + /* user_init.c:2:OF */ extern object user_init (void); /* () */ + /* user_init.c:2:OF */ extern int user_match (const char *,int n); /* () */ +-/* usig.c:49:OF */ extern void gcl_signal (int signo, void (*handler) (/* ??? */)); /* (signo, handler) int signo; void (*handler)(); */ ++/* usig.c:49:OF */ extern void gcl_signal (int signo, void (*handler)(int,long,void *,char *)); /* (signo, handler) int signo; void (*handler)(); */ + /* usig.c:92:OF */ extern int unblock_signals (int n, int m); /* (n, m) int n; int m; */ + /* usig.c:119:OF */ extern void unblock_sigusr_sigio (void); /* () */ + /* usig.c:182:OF */ extern void install_default_signals (void); /* () */ +@@ -1674,3 +1674,6 @@ void stack_list(void); + void *msbrk(intptr_t); + int msbrk_init(void); + int msbrk_end(void); ++ ++object ++quick_call_function_vec(object,ufixnum,object *); +--- gcl27-2.7.1.orig/h/usig.h ++++ gcl27-2.7.1/h/usig.h +@@ -1,4 +1,4 @@ +-typedef void (*handler_function_type)(int,siginfo_t *,void *); ++typedef void (*handler_function_type)(int,long,void *,char *); + + EXTER handler_function_type our_signal_handler[32]; + +--- gcl27-2.7.1.orig/install-sh ++++ gcl27-2.7.1/install-sh +@@ -1,7 +1,7 @@ + #!/bin/sh + # install - install a program, script, or datafile + +-scriptversion=2024-06-19.01; # UTC ++scriptversion=2025-06-18.21; # UTC + + # This originates from X11R5 (mit/util/scripts/install.sh), which was + # later released in X11R6 (xc/config/util/install.sh) with the +@@ -533,9 +533,9 @@ do + done + + # Local variables: +-# eval: (add-hook 'before-save-hook 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp nil t) + # time-stamp-start: "scriptversion=" +-# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-format: "%Y-%02m-%02d.%02H" + # time-stamp-time-zone: "UTC0" + # time-stamp-end: "; # UTC" + # End: +--- gcl27-2.7.1.orig/lsp/gcl_deftype.lsp ++++ gcl27-2.7.1/lsp/gcl_deftype.lsp +@@ -6,7 +6,7 @@ + non-negative-short-float negative-long-float positive-long-float + non-positive-long-float non-negative-long-float negative-float + positive-float non-positive-float non-negative-float negative-real +- positive-real non-positive-real non-negative-real complex* ++ positive-real non-positive-real non-negative-real complex* pathname-designator + complex-integer complex-integer-ratio complex-ratio-integer seqind seqbnd + complex-ratio complex-short-float complex-long-float make-complex unordered));FIXME + +--- gcl27-2.7.1.orig/lsp/gcl_directory.lsp ++++ gcl27-2.7.1/lsp/gcl_directory.lsp +@@ -49,11 +49,16 @@ + (expand-wild-directory d (cons :relative (cdr x)) f q e)) :directory));FIXME + ((funcall f z y)))))) + +-(defun directory (p &key &aux (p (translate-logical-pathname p))(d (pathname-directory p)) +- (c (unless (eq (car d) :absolute) (make-frame (namestring *current-directory*)))) +- (lc (when c (length c))) +- (filesp (or (pathname-name p) (pathname-type p))) +- (v (compile-regexp (to-regexp p)))(*up-key* :back) r) ++(defun directory (p &key &aux (p (merge-pathnames (translate-logical-pathname p) ++ #.`(load-time-value ++ (make-pathname ++ ,@(mapcan (lambda (x) (list x (if (eq x :directory) `'(:relative) :unspecific))) ++ +pathname-keys+))))) ++ (d (pathname-directory p)) ++ (c (unless (eq (car d) :absolute) (make-frame (namestring *current-directory*)))) ++ (lc (when c (length c))) ++ (filesp (or (pathname-name p) (pathname-type p))) ++ (v (compile-regexp (to-regexp p)))(*up-key* :back) r) + (expand-wild-directory (pathname-device p) d + (lambda (dir exp &aux (pexp (pathname (if c (vector-push-string c exp 0 lc) exp)))) + (if filesp +--- gcl27-2.7.1.orig/lsp/gcl_logical_pathname_translations.lsp ++++ gcl27-2.7.1/lsp/gcl_logical_pathname_translations.lsp +@@ -24,5 +24,5 @@ + (error "No translations found for ~s" k))) + + (defun logical-pathname-host-p (host) +- (when host ++ (when (stringp host) + (logical-pathname-translations host))) +--- gcl27-2.7.1.orig/lsp/gcl_make_pathname.lsp ++++ gcl27-2.7.1/lsp/gcl_make_pathname.lsp +@@ -47,7 +47,8 @@ + + (defconstant +physical-pathname-defaults+ '(("" "" "" "") + ("" "" "" "") +- ("" "(/?([^/]+/)*)" "" "" "" "([^/]+/)" "/" "/") ++ ("" "(/?([^/]*/)*)" "" "" "" "([^/]*/)" "/" "/") ++; ("" "(/?([^/]+/)*)" "" "" "" "([^/]+/)" "/" "/") + ("" "([^/.]*)" "" ".") + ("." "(\\.[^/]*)?" "" "") + ("" "" "" ""))) +@@ -88,7 +89,8 @@ + ((eql :wild) (if rp (list dflt) (elsub "*" x rp lp))) + ((eql :newest) (elsub (if rp "(newest|NEWEST)" "NEWEST") x rp lp)) + ((member :up :back) (elsub ".." x rp lp)) +- ((member nil :unspecific) (when rp (list dflt))) ++ (null (when rp (list dflt))) ++ ((eql :unspecific) nil) + (cons (cons + (if (eq (car el) :absolute) (if lp "" "/") (if lp ";" "")) + (mapcan (lambda (z) (elsub z y rp lp)) (cdr el))))) +@@ -103,15 +105,17 @@ + x (if lp +logical-pathname-defaults+ +physical-pathname-defaults+)))) + + (defun directory-list-check (l) +- (when (listp l) +- (when (member (car l) '(:absolute :relative)) +- (mapl (lambda (x &aux (c (car x))(d (cadr x))) +- (when (and (member d '(:up :back)) (member c '(:absolute :wild-inferiors))) +- (return-from directory-list-check nil))) l)))) ++ (if (atom l) l ++ (when (member (car l) '(:absolute :relative)) ++ (mapl (lambda (x &aux (c (car x))(d (cadr x))) ++ (when (and (member d '(:up :back)) (member c '(:absolute :wild-inferiors))) ++ (return-from directory-list-check nil))) ++ l)))) + + (defun canonicalize-pathname-directory (l) + (cond ((eq l :wild) (canonicalize-pathname-directory '(:absolute :wild-inferiors))) + ((stringp l) (canonicalize-pathname-directory (list :absolute l))) ++ ((eq l :unspecific) l) + ((mapl (lambda (x &aux (c (car x)) + (skip (cond ((equal c ".") (cdr x)) + ((when (or (stringp c) (eq c :wild)) (eq (cadr x) :back)) (cddr x))))) +--- gcl27-2.7.1.orig/lsp/gcl_merge_pathnames.lsp ++++ gcl27-2.7.1/lsp/gcl_merge_pathnames.lsp +@@ -11,7 +11,7 @@ + :host (or (pathname-host pn) (def (pathname-host def-pn))) + :device (or (pathname-device pn) (def (pathname-device def-pn))) + :directory (let ((d (pathname-directory pn))(defd (pathname-directory def-pn))) +- (or (def (when (and defd (eq (car d) :relative)) (append defd (cdr d)))) d (def defd))) ++ (or (def (when (and defd (listp d) (listp defd) (eq (car d) :relative)) (append defd (cdr d)))) d (def defd))) + :name (or (pathname-name pn) (def (pathname-name def-pn))) + :type (or (pathname-type pn) (def (pathname-type def-pn))) + :version (or (pathname-version pn) (def (unless (pathname-name pn) (pathname-version def-pn))) (def def-v)) +--- gcl27-2.7.1.orig/lsp/gcl_mislib.lsp ++++ gcl27-2.7.1/lsp/gcl_mislib.lsp +@@ -104,9 +104,6 @@ + (decode-universal-time (get-universal-time))) + + ;Courtesy Paul Dietz +-(defun compile-file-pathname (pathname) +- (declare (optimize (safety 2))) +- (make-pathname :defaults pathname :type "o")) + + (defun constantly (x) + (declare (optimize (safety 2))) +--- gcl27-2.7.1.orig/lsp/gcl_seqlib.lsp ++++ gcl27-2.7.1/lsp/gcl_seqlib.lsp +@@ -384,17 +384,17 @@ + (push ns ii) (push ns1 ii)) + (setq ls nls fi nfi)))))))) + +- + (defun stable-sort (sequence predicate &key key) + (declare (optimize (safety 1))) + (check-type sequence proper-sequence) +- (typecase +- sequence +- (list (list-merge-sort sequence predicate key)) +- (string (sort sequence predicate :key key)) +- (bit-vector (sort sequence predicate :key key)) +- (otherwise +- (replace sequence (list-merge-sort (coerce sequence 'list) predicate key))))) ++ (if (listp sequence) ++ (list-merge-sort sequence predicate key) ++ (let (r rp) ++ (dotimes (i (length sequence)) ++ (let ((tmp (cons (aref sequence i) nil))) ++ (declare (dynamic-extent tmp)) ++ (setq rp (if rp (cdr (rplacd rp tmp)) (setq r tmp))))) ++ (replace sequence (list-merge-sort r predicate key))))) + + (eval-when (compile eval) + (defmacro f+ (x y) `(the fixnum (+ (the fixnum ,x) (the fixnum ,y)))) +--- gcl27-2.7.1.orig/missing ++++ gcl27-2.7.1/missing +@@ -1,11 +1,11 @@ + #! /bin/sh + # Common wrapper for a few potentially missing GNU and other programs. + +-scriptversion=2024-06-07.14; # UTC ++scriptversion=2025-06-18.21; # UTC + + # shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells + +-# Copyright (C) 1996-2024 Free Software Foundation, Inc. ++# Copyright (C) 1996-2025 Free Software Foundation, Inc. + # Originally written by Fran,cois Pinard , 1996. + + # This program is free software; you can redistribute it and/or modify +@@ -228,9 +228,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: + exit $st + + # Local variables: +-# eval: (add-hook 'before-save-hook 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp nil t) + # time-stamp-start: "scriptversion=" +-# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-format: "%Y-%02m-%02d.%02H" + # time-stamp-time-zone: "UTC0" + # time-stamp-end: "; # UTC" + # End: +--- gcl27-2.7.1.orig/o/character.d ++++ gcl27-2.7.1/o/character.d +@@ -108,9 +108,8 @@ Foundation, 675 Mass Ave, Cambridge, MA + If r > 36 or i is not a digit, -1 is returned. + */ + int +-digitp(i, r) +-int i, r; +-{ ++digitp(int i,int r) { ++ + if ('0' <= i && i <= '9' && 1 < r && i < '0' + r) + return(i - '0'); + if ('A' <= i && 10 < r && r <= 36 && i < 'A' + (r - 10)) +@@ -149,9 +148,8 @@ int i, r; + @) + + bool +-char_eq(x, y) +-object x, y; +-{ ++char_eq(object x,object y) { ++ + return(char_code(x) == char_code(y) + && char_bits(x) == char_bits(y) + && char_font(x) == char_font(y)); +@@ -186,9 +184,8 @@ object x, y; + + + static int +-char_cmp(x, y) +-object x, y; +-{ ++char_cmp(object x,object y) { ++ + if (char_font(x) < char_font(y)) + return(-1); + if (char_font(x) > char_font(y)) +@@ -205,9 +202,8 @@ object x, y; + } + + static void +-Lchar_cmp(s, t) +-int s, t; +-{ ++Lchar_cmp(int s,int t) { ++ + int narg, i; + + narg = vs_top - vs_base; +@@ -232,9 +228,8 @@ LFD(Lchar_ge)() { Lchar_cmp(-1, 0); } + + + bool +-char_equal(x, y) +-object x, y; +-{ ++char_equal(object x,object y) { ++ + int i, j; + + i = char_code(x); +@@ -273,9 +268,8 @@ object x, y; + + + static int +-char_compare(x, y) +-object x, y; +-{ ++char_compare(object x,object y) { ++ + int i, j; + + i = char_code(x); +@@ -293,9 +287,8 @@ object x, y; + } + + static void +-Lchar_compare(s, t) +-int s, t; +-{ ++Lchar_compare(int s,int t) { ++ + int narg, i; + + narg = vs_top - vs_base; +@@ -320,9 +313,8 @@ LFD(Lchar_not_lessp)() { Lchar_compar + + + object +-coerce_to_character(x) +-object x; +-{ ++coerce_to_character(object x) { ++ + BEGIN: + switch (type_of(x)) { + case t_fixnum: +@@ -408,9 +400,8 @@ BEGIN: + @) + + int +-digit_weight(w, r) +-int w, r; +-{ ++digit_weight(int w,int r) { ++ + if (r < 2 || r > 36 || w < 0 || w >= r) + return(-1); + if (w < 10) +--- gcl27-2.7.1.orig/o/cmac.c ++++ gcl27-2.7.1/o/cmac.c +@@ -55,9 +55,9 @@ dblrem(int a, int b, int mod) + #else + + static int +-dblrem(a,b,mod) +-int a,b,mod; +-{int h,sign; ++dblrem(int a,int b,int mod) { ++ ++ int h,sign; + if (a<0) + {a= -a; sign= (b<0)? (b= -b,1) :-1;} + else { sign= (b<0) ? (b= -b,-1) : 1;} +--- gcl27-2.7.1.orig/o/eval.c ++++ gcl27-2.7.1/o/eval.c +@@ -66,15 +66,6 @@ object sSAbreak_stepA; + ({enum ftype _t=type;\ + _t==f_object ? a : (_t==f_fixnum ? make_fixnum((fixnum)a) : make_integer((GEN)a));}) + +-#include "apply_n.h" +- +-static object +-quick_call_function_vec(object fun,ufixnum n,object *b) { +- +- return c_apply_n_fun(fun,n,b); +- +-} +- + static object + quick_call_function_vec_coerce(object fun,ufixnum n,object *b) { + +@@ -704,7 +695,7 @@ APPLICATION: + ihs_check; + ihs_push(form); + ihs_top->ihs_base = lex_env; +- ((void (*)())fun->s.s_sfdef)(MMcdr(form)); ++ ((void (*)(object))fun->s.s_sfdef)(MMcdr(form)); + CHECK_AVMA; + ihs_pop(); + return; +--- gcl27-2.7.1.orig/o/fasdump.c ++++ gcl27-2.7.1/o/fasdump.c +@@ -29,7 +29,7 @@ static void + clrhash(object); + + +-object coerce_stream(); ++object coerce_stream(object,int); + static object fasd_patch_sharp(object x, int depth); + object make_pathname (); + +--- gcl27-2.7.1.orig/o/file.d ++++ gcl27-2.7.1/o/file.d +@@ -106,9 +106,7 @@ object LSP_string; + object sSAignore_eof_on_terminal_ioA; + + static bool +-feof1(fp) +-FILE *fp; +-{ ++feof1(FILE *fp) { + + #ifdef USE_READLINE + if (readline_on && fp==rl_instream && rl_line_buffer && *rl_line_buffer==EOF) +@@ -199,9 +197,8 @@ DEFUN("TERMINAL-INPUT-STREAM-P",object,f + but only checks the mode of the stream (sm_mode). + */ + static bool +-input_stream_p(strm) +-object strm; +-{ ++input_stream_p(object strm) { ++ + BEGIN: + switch (strm->sm.sm_mode) { + case smm_input: +@@ -256,9 +253,8 @@ BEGIN: + but only checks the mode of the stream (sm_mode). + */ + static bool +-output_stream_p(strm) +-object strm; +-{ ++output_stream_p(object strm) { ++ + BEGIN: + switch (strm->sm.sm_mode) { + case smm_input: +@@ -306,9 +302,8 @@ BEGIN: + } + + static object +-stream_element_type(strm) +-object strm; +-{ ++stream_element_type(object strm) { ++ + object x; + + BEGIN: +@@ -656,9 +651,8 @@ fLinteractive_stream_p(object x) { + #endif + + object +-make_two_way_stream(istrm, ostrm) +-object istrm, ostrm; +-{ ++make_two_way_stream(object istrm,object ostrm) { ++ + object strm; + + strm = alloc_object(t_stream); +@@ -673,9 +667,8 @@ object istrm, ostrm; + } + + static object +-make_echo_stream(istrm, ostrm) +-object istrm, ostrm; +-{ ++make_echo_stream(object istrm,object ostrm) { ++ + object strm; + + strm = make_two_way_stream(istrm, ostrm); +@@ -764,9 +757,8 @@ DEFUN("STRING-OUTPUT-STREAM-P",object,fS + } + + object +-make_string_output_stream(line_length) +-int line_length; +-{ ++make_string_output_stream(int line_length) { ++ + object strng, strm; + vs_mark; + +@@ -786,9 +778,8 @@ int line_length; + } + + static object +-get_output_stream_string(strm) +-object strm; +-{ ++get_output_stream_string(object strm) { ++ + object strng; + + strng = copy_simple_string(STRING_STREAM_STRING(strm)); +@@ -803,9 +794,8 @@ cannot_read(object); + static void + closed_stream(object); + int +-readc_stream(strm) +-object strm; +-{ ++readc_stream(object strm) { ++ + int c; + + BEGIN: +@@ -1515,9 +1505,8 @@ BEGIN: + } + + int +-file_position(strm) +-object strm; +-{ ++file_position(object strm) { ++ + BEGIN: + switch (strm->sm.sm_mode) { + case smm_input: +@@ -1564,10 +1553,8 @@ BEGIN: + } + + int +-file_position_set(strm, disp) +-object strm; +-int disp; +-{ ++file_position_set(object strm,int disp) { ++ + BEGIN: + switch (strm->sm.sm_mode) { + case smm_socket: +@@ -1615,9 +1602,8 @@ BEGIN: + } + + static int +-file_length(strm) +-object strm; +-{ ++file_length(object strm) { ++ + BEGIN: + switch (strm->sm.sm_mode) { + case smm_input: +@@ -2243,30 +2229,22 @@ LFD(siLcopy_stream)() + } + + static void +-cannot_open(fn) +-object fn; +-{ ++cannot_open(object fn) { + FILE_ERROR(fn,"Cannot open"); + } + + static void +-cannot_create(fn) +-object fn; +-{ ++cannot_create(object fn) { + FILE_ERROR(fn,"Cannot create"); + } + + static void +-cannot_read(strm) +-object strm; +-{ ++cannot_read(object strm) { + FEerror("Cannot read the stream ~S.", 1, strm); + } + + static void +-cannot_write(strm) +-object strm; +-{ ++cannot_write(object strm) { + FEerror("Cannot write to the stream ~S.", 1, strm); + } + +@@ -2285,9 +2263,8 @@ FFN(siLuser_stream_state)() + #endif + + static void +-closed_stream(strm) +-object strm; +-{ ++closed_stream(object strm) { ++ + if (!GET_STREAM_FLAG(strm,gcl_sm_had_error)) + { + SET_STREAM_FLAG(strm,gcl_sm_had_error,1); +@@ -2308,10 +2285,8 @@ object strm; + */ + + object +-coerce_stream(strm,out) +-object strm; +-int out; +-{ ++coerce_stream(object strm,int out) { ++ + BEGIN: + if (type_of(strm) != t_stream) + FEwrong_type_argument(sLstream, strm); +@@ -2416,10 +2391,8 @@ DEFUN("FREAD",object,fSfread,SI,4,4,NONE + of the buffer may be changed. + */ + static void +-putCharGclSocket(strm,ch) +- object strm; +- int ch; +-{ ++putCharGclSocket(object strm,int ch) { ++ + object bufp = SOCKET_STREAM_BUFFER(strm); + + AGAIN: +@@ -2435,10 +2408,8 @@ putCharGclSocket(strm,ch) + } + + static void +-gclFlushSocket(strm) +- object strm; ++gclFlushSocket(object strm) { + +-{ + int fd = SOCKET_STREAM_FD(strm); + object bufp = SOCKET_STREAM_BUFFER(strm); + int i=0; +@@ -2470,14 +2441,8 @@ gclFlushSocket(strm) + + static + object +-make_socket_stream(fd,mode,server,host,port,async) +-int fd; +-enum gcl_sm_flags mode; +-object server; +-object host; +-object port; +-object async; +-{ ++make_socket_stream(int fd,enum gcl_sm_flags mode,object server,object host,object port,object async) { ++ + object x; + if (fd < 0 ) + { +--- gcl27-2.7.1.orig/o/format.c ++++ gcl27-2.7.1/o/format.c +@@ -52,7 +52,7 @@ static void + fmt_semicolon(bool,bool); + + static void +-fmt_up_and_out(bool,bool); ++fmt_up_and_out(int,bool); + + static void + fmt_justification(volatile bool,bool); +@@ -347,7 +347,8 @@ format(object fmt_stream0, int ctl_origi + { + int c, n; + fixnum i,j,sn; +- bool colon, atsign; ++ int colon; ++ bool atsign; + object x; + fmt_paramp = fmt_param; + +@@ -2640,7 +2641,7 @@ fmt_justification(volatile bool colon, b + + + static void +-fmt_up_and_out(bool colon, bool atsign) ++fmt_up_and_out(int colon, bool atsign) + { + fixnum j,n; + object x[3]; +@@ -2720,7 +2721,8 @@ DEFUN("FORMAT",object,fLformat,LISP,2,F_ + va_list ap; + VOL object x = OBJNULL; + jmp_buf fmt_jmp_buf0; +- bool colon, e; ++ int colon; ++ bool e; + VOL fixnum nargs=INIT_NARGS(2); + + fmt_old; +--- gcl27-2.7.1.orig/o/funlink.c ++++ gcl27-2.7.1/o/funlink.c +@@ -225,8 +225,6 @@ clean_link_array(object *ar, object *ar_ + return(i*sizeof(object *)); + } + +-#include "apply_n.h" +- + DEFVAR("*FAST-LINK-WARNINGS*",sSAfast_link_warningsA,SI,Cnil,""); + + #include "pbits.h" +@@ -242,15 +240,14 @@ typedef union { + fw f; + } fu; + ++ + object +-call_proc_new(object sym,ufixnum clp,ufixnum vld,void **link,ufixnum argd,object first,va_list ll) { ++call_proc_new23(object sym,ufixnum clp,ufixnum vld,void **link,ufixnum argd,object *x) { + + object fun; + enum type tp; + ufixnum margs,nargs,fas,do_link,varg,pushed=0,nfargs; + fixnum vald; +- object *tmp,*x/* ,*p */; +- int i; + fu u; + + if (type_of(sym)==t_symbol) { +@@ -262,7 +259,7 @@ call_proc_new(object sym,ufixnum clp,ufi + tp=type_of(fun); + + u.i=vld; +- ++ + /* p=0; */ + if (u.f.pu) { + u.f.ma=vs_top-vs_base; +@@ -270,22 +267,12 @@ call_proc_new(object sym,ufixnum clp,ufi + /* p=vs_base; */ + pushed=1; + } +- ++ + margs=u.f.ma; + varg=u.f.va; + nargs=u.f.va ? abs(VFUN_NARGS) : margs; + nfargs=u.f.va && VFUN_NARGS<0 ? nargs-1 : nargs; + vald=!u.f.vv ? -(fixnum)u.f.nv : u.f.nv; +- +- x=tmp=(u.f.pu && !fun->fun.fun_argd && VFUN_NARGS>=fun->fun.fun_minarg) ? +- vs_base : ZALLOCA(nargs*sizeof(object)); +- +- if (tmp!=vs_base) { +- if (u.f.pu) +- memcpy(tmp,vs_base,nargs*sizeof(*tmp)); +- else for (i=0;is.s_dbind!=Cnil) +- sSin_call->s.s_gfdef->fun.fun_self(sym); ++ ((object (*)(object))sSin_call->s.s_gfdef->fun.fun_self)(sym); + + if (fas) { + +@@ -352,12 +339,12 @@ call_proc_new(object sym,ufixnum clp,ufi + } + + if (sSAprofilingA->s.s_dbind!=Cnil) +- sSout_call->s.s_gfdef->fun.fun_self(fSgettimeofday()); +- +- return(c_apply_n_fun(fun,x-tmp,tmp)); ++ ((object (*)(object))sSout_call->s.s_gfdef->fun.fun_self)(fSgettimeofday()); ++ ++ return(quick_call_function_vec(fun,nargs,x)); + + } else { +- ++ + object res; + register object *base,*old_top; + enum ftype result_type; +@@ -370,17 +357,17 @@ call_proc_new(object sym,ufixnum clp,ufi + if (vald || u.f.vv) larg=(fixnum)fcall.valp; + + if (!pushed) { +- ++ + object y; +- ++ + vs_base=vs_top; /*???*/ + + for (i=0;ic.c_cdr) + vs_push(y->c.c_car); +- ++ + vs_check; + + } +@@ -404,7 +391,7 @@ call_proc_new(object sym,ufixnum clp,ufi + base=vs_base; + old_top=vs_top; + funcall(fun); +- ++ + res=vs_base[0]; + if (larg) { + object *tmp=vs_base+1,*tl=(void *)larg,*tle=tl+labs(vald);/*FIXME avoid if pushed*/ +@@ -418,7 +405,7 @@ call_proc_new(object sym,ufixnum clp,ufi + vs_top=base; + + for (;--old_top>=vs_top && vs_top>=vs_org;) *old_top=Cnil; +- ++ + switch(result_type) { + case f_fixnum: + res=(object)fix(res); +@@ -426,49 +413,29 @@ call_proc_new(object sym,ufixnum clp,ufi + default: + break; + } +- ++ + if (sSAprofilingA->s.s_dbind!=Cnil) +- sSout_call->s.s_gfdef->fun.fun_self(fSgettimeofday()); ++ ((object (*)(object))sSout_call->s.s_gfdef->fun.fun_self)(fSgettimeofday()); + + return res; +- ++ + } + + } +-object +-call_proc_new_nval(object sym,ufixnum clp,ufixnum vld,void **link,ufixnum argd,object first,...) { +- object x; +- va_list b; +- va_start(b,first); +- x=call_proc_new(sym,clp,vld,link,argd,first,b); +- va_end(b); +- return x; +-} +- +-object +-call_proc_cs1(object fun,...) { +- register object res; +- ufixnum vald; +- va_list ap; +- va_start(ap,fun); +- vald=((31<<12)|(1<<17)|(1<<18)|(1<<20)); +- res=call_proc_new(fun,1,vald,0,0,0,ap); +- va_end(ap); +- return res; +-} +- + + object + call_proc_cs2(object first,...) { +- register object res; +- ufixnum vald; ++ ++ int i,nargs=abs(VFUN_NARGS); ++ object *x=alloca(nargs*sizeof(*x)); + va_list ap; +- object fun=fcall.fun; ++ + va_start(ap,first); +- vald=((31<<12)|(1<<17)|(1<<18)); +- res=call_proc_new(fun,1,vald,0,0,first,ap); ++ for (i=0;i0 ? mpz_cdiv_qr : mpz_tdiv_qr); ++ void (*f)(__mpz_struct *,__mpz_struct *,__mpz_struct *,__mpz_struct *)=d<0 ? mpz_fdiv_qr : (d>0 ? mpz_cdiv_qr : mpz_tdiv_qr); + f(MP(big_fixnum3),MP(big_fixnum4),b1,b2); + *rp=maybe_replace_big(big_fixnum4); + } else { +- void (*f)()=d<0 ? mpz_fdiv_q : (d>0 ? mpz_cdiv_q : mpz_tdiv_q); ++ void (*f)(__mpz_struct *,__mpz_struct *,__mpz_struct *)=d<0 ? mpz_fdiv_q : (d>0 ? mpz_cdiv_q : mpz_tdiv_q); + f(MP(big_fixnum3),b1,b2); + } + *qp=maybe_replace_big(big_fixnum3); + } else if (rp) { +- void (*f)()=d<0 ? mpz_fdiv_r : (d>0 ? mpz_cdiv_r : mpz_tdiv_r); ++ void (*f)(__mpz_struct *,__mpz_struct *,__mpz_struct *)=d<0 ? mpz_fdiv_r : (d>0 ? mpz_cdiv_r : mpz_tdiv_r); + f(MP(big_fixnum4),b1,b2); + *rp=maybe_replace_big(big_fixnum4); + } +--- gcl27-2.7.1.orig/o/list.d ++++ gcl27-2.7.1/o/list.d +@@ -32,9 +32,8 @@ Foundation, 675 Mass Ave, Cambridge, MA + + + object +-car(x) +-object x; +-{ ++car(object x) { ++ + if (x == Cnil) + return(x); + if (consp(x)) +@@ -44,9 +43,8 @@ object x; + } + + object +-cdr(x) +-object x; +-{ ++cdr(object x) { ++ + if (x == Cnil) + return(x); + if (consp(x)) +@@ -192,9 +190,8 @@ append(object x, object y) { + } + + object +-copy_list(x) +-object x; +-{ ++copy_list(object x) { ++ + object y; + + if (!consp(x)) +@@ -277,10 +274,10 @@ stack_list(void) { + + } + +-object on_stack_make_list(n) +-int n; +-{ object res=(object) alloca_val; +- struct cons *p = (struct cons *)res; ++object on_stack_make_list(int n) { ++ ++ object res=(object) alloca_val; ++ struct cons *p = (struct cons *)res; + if (n<=0) return Cnil; + TOP: + #ifdef WIDE_CONS +@@ -315,9 +312,8 @@ DEFUN("RPLACD",object,fLrplacd,LISP,2,2, + + + void +-check_proper_list(alist) +-object alist; +-{ ++check_proper_list(object alist) { ++ + object v; + /* + if (alist == Cnil) +@@ -336,9 +332,7 @@ DEFUN("PROPER-LISTP",object,fSproper_lis + + + bool +-member_eq(x, l) +-object x, l; +-{ ++member_eq(object x,object l) { + + for (; consp(l); l = l->c.c_cdr) + if (x == l->c.c_car) +@@ -347,9 +341,8 @@ object x, l; + } + + void +-delete_eq(x, lp) +-object x, *lp; +-{ ++delete_eq(object x,object *lp) { ++ + for (; consp(*lp); lp = &(*lp)->c.c_cdr) + if ((*lp)->c.c_car == x) { + *lp = (*lp)->c.c_cdr; +--- gcl27-2.7.1.orig/o/main.c ++++ gcl27-2.7.1/o/main.c +@@ -76,7 +76,7 @@ char stderr_buf[BUFSIZ + EXTRA_BUFSIZE]; + #include "stacks.h" + + int debug; /* debug switch */ +-int raw_image = TRUE; /* raw or saved image -- CYGWIN will only place this in .data and not in .bss if initialized to non-zero */ ++bool raw_image = TRUE; /* raw or saved image -- CYGWIN will only place this in .data and not in .bss if initialized to non-zero */ + bool GBC_enable=FALSE; + + long real_maxpage; +@@ -1434,7 +1434,7 @@ my_fprintf(void *v,const char *f,...) { + + #ifdef HAVE_FPRINTF_STYLED_FTYPE + static int +-my_fprintf_styled(void *v,enum disassembler_style,const char *f,...) { ++my_fprintf_styled(void *v,enum disassembler_style s,const char *f,...) { + va_list va; + int r; + va_start(va,f); +@@ -1463,25 +1463,24 @@ DEFUN("DISASSEMBLE-INSTRUCTION",object,f + #if defined(HAVE_DIS_ASM_H) && defined(OUTPUT_ARCH) + + static disassemble_info i; +- void *v; +- void * (*s)(); ++ void *v,*s; + fixnum j,j1,k; + object x; + + if ((v=dlopen("libopcodes.so",RTLD_NOW))) { + if ((s=dlsym(v,"init_disassemble_info"))) { +- s(&i, stdout,(fprintf_ftype)my_fprintf + #ifdef HAVE_FPRINTF_STYLED_FTYPE +- ,my_fprintf_styled ++ ((void * (*)(disassemble_info *,FILE *,fprintf_ftype,fprintf_styled_ftype))s)(&i,stdout,my_fprintf,my_fprintf_styled); ++#else ++ ((void * (*)(disassemble_info *,FILE *,fprintf_ftype))s)(&i,stdout,my_fprintf); + #endif +- ); + i.read_memory_func=my_read; + i.print_address_func=my_pa; + #if defined(OUTPUT_MACH) + i.mach=OUTPUT_MACH; + #endif + if ((s=dlsym(v,"disassembler"))) { +- disassembler_ftype disasm=(disassembler_ftype)(ufixnum)s(OUTPUT_ARCH,0,0,NULL); ++ disassembler_ftype disasm=((disassembler_ftype (*)(int,int,int,void *))s)(OUTPUT_ARCH,0,0,NULL); + bp=b; + disasm(addr,&i); + my_fprintf(NULL," ;"); +--- gcl27-2.7.1.orig/o/package.d ++++ gcl27-2.7.1/o/package.d +@@ -39,9 +39,8 @@ void check_type_or_symbol_string_package + + + static bool +-member_string_eq(x, l) +-object x, l; +-{ ++member_string_eq(object x,object l) { ++ + for (; consp(l); l = l->c.c_cdr) + if (string_eq(x, l->c.c_car)) + return(TRUE); +@@ -126,10 +125,7 @@ suitable_package_size(ufixnum n) + or package names i.e. strings or symbols. + */ + static object +-make_package(n, ns, ul,isize,esize) +-object n, ns, ul; +-int isize,esize; +-{ ++make_package(object n,object ns,object ul,int isize,int esize) { + + object x, y; + int i; +@@ -199,10 +195,7 @@ static void + use_package(object,object); + + static object +-in_package(n, ns, ul,isize,esize) +-object n, ns, ul; +-int isize,esize; +-{ ++in_package(object n,object ns,object ul,int isize,int esize) { + + object x, y; + vs_mark; +@@ -237,9 +230,7 @@ L: + } + + static object +-rename_package(x, n, ns) +-object x, n, ns; +-{ ++rename_package(object x,object n,object ns) { + + object y; + vs_mark; +@@ -278,9 +269,8 @@ object x, n, ns; + If not so, an error is signaled. + */ + object +-find_package(n) +-object n; +-{ ++find_package(object n) { ++ + struct package *p; + + check_package_designator(n); +@@ -291,9 +281,8 @@ object n; + } + + static object +-coerce_to_package(p) +-object p; +-{ ++coerce_to_package(object p) { ++ + object pp; + + if (type_of(p) == t_package) +@@ -327,9 +316,9 @@ current_package() + */ + + int +-pack_hash(x) +-object x; +-{unsigned int h=0; ++pack_hash(object x) { ++ ++ unsigned int h=0; + x=coerce_to_string(x); + {int len=VLEN(x); + char *s; +@@ -393,9 +382,8 @@ DEFUN("PACKAGE-EXTERNAL_SIZE",object,fSp + Intern(st, p) interns string st in package p. + */ + object +-intern(st, p) +-object st, p; +-{ ++intern(object st,object p) { ++ + int j; + object x, *ip, *ep, l, ul; + vs_mark; +@@ -450,9 +438,8 @@ object st, p; + Find_symbol(st, p) searches for string st in package p. + */ + object +-find_symbol(st, p) +-object st, p; +-{ ++find_symbol(object st,object p) { ++ + int j; + object *ip, *ep, l, ul; + {BEGIN_NO_INTERRUPT; +@@ -483,9 +470,8 @@ object st, p; + }} + + static bool +-unintern(s, p) +-object s, p; +-{ ++unintern(object s,object p) { ++ + object x, y, l, *lp; + int j; + {BEGIN_NO_INTERRUPT; +@@ -533,9 +519,8 @@ UNINTERN: + }} + + void +-export(s, p) +-object s, p; +-{ ++export(object s,object p) { ++ + object x; + int j; + object *ep, *ip, l; +@@ -578,9 +563,8 @@ BEGIN: + } + + static void +-unexport(s, p) +-object s, p; +-{ ++unexport(object s,object p) { ++ + object x, *ep, *ip; + int j; + +@@ -609,9 +593,8 @@ object s, p; + } + + void +-import(s, p) +-object s, p; +-{ ++import(object s,object p) { ++ + object x; + int j; + object *ip; +@@ -635,9 +618,8 @@ object s, p; + } + + static void +-shadowing_import(s, p) +-object s, p; +-{ ++shadowing_import(object s,object p) { ++ + object x, *ip; + + x=find_symbol(s, p); +@@ -668,9 +650,8 @@ object s, p; + } + + static void +-shadow(s, p) +-object s, p; +-{ ++shadow(object s,object p) { ++ + int j; + object *ip,x; + +@@ -692,9 +673,8 @@ object s, p; + } + + static void +-use_package(x0, p) +-object x0, p; +-{ ++use_package(object x0,object p) { ++ + object x = x0; + int i; + object y, l; +@@ -735,9 +715,8 @@ object x0, p; + } + + static void +-unuse_package(x0, p) +-object x0, p; +-{ ++unuse_package(object x0,object p) { ++ + object x = x0; + + BEGIN: +--- /dev/null ++++ gcl27-2.7.1/o/pre_qfv.c +@@ -0,0 +1,98 @@ ++#include "include.h" ++#include "arth.h" ++ ++#define EMPTY() ++#define DEFER(id) id EMPTY() ++ ++#define EVAL(...) EVAL64(__VA_ARGS__) ++#define EVAL64(...) EVAL32(EVAL32(__VA_ARGS__)) ++#define EVAL32(...) EVAL16(EVAL16(__VA_ARGS__)) ++#define EVAL16(...) EVAL8(EVAL8(__VA_ARGS__)) ++#define EVAL8(...) EVAL4(EVAL4(__VA_ARGS__)) ++#define EVAL4(...) EVAL2(EVAL2(__VA_ARGS__)) ++#define EVAL2(...) EVAL1(EVAL1(__VA_ARGS__)) ++#define EVAL1(...) __VA_ARGS__ ++ ++#define minus(a,b) M_ ## a ## _ ## b ++#define MINUS(a,b) minus(a,b) ++#define DEC(n) MINUS(n,1) ++ ++#define SECOND(a, b, ...) b ++#define IS_ONE_PROXY(...) SECOND(__VA_ARGS__) ++#define IS_ONE_1 ~, 1 ++#define IS_ONE_CHECK(n) IS_ONE_PROXY(Mjoin(IS_ONE_, n), 0) ++ ++#define GCNT_0(P,n,m) , DEFER(GCNT_ID)()(P,n,m) ++#define GCNT_1(P,n,m) ++#define GCNT_ID() GCNT ++ ++#define GCNT(P,n,m) P(n,m) Mjoin(GCNT_,IS_ONE_CHECK(n))(P,DEC(n),m) ++#define PPP1(n,m) object ++#define PPP2(n,m) x[MINUS(m,n)] ++#define CSTCL(m,n) case n*(MAX_ARGS+1)+m: return ((object (*)(GCNT(PPP1,m,m),...))f)(GCNT(PPP2,n,n)); ++ ++#define OGCNT_0(P,n,m) DEFER(OGCNT_ID)()(P,n,m) ++#define OGCNT_1(P,n,m) ++#define OGCNT_ID() OGCNT ++ ++#define OGCNT(P,n,m) P(n,m) Mjoin(OGCNT_,IS_ONE_CHECK(n))(P,DEC(n),m) ++#define OWLK(m,n) OGCNT(CSTCL,m,m) ++ ++#define PGCNT_0(P,n,m) DEFER(PGCNT_ID)()(P,n,m) ++#define PGCNT_1(P,n,m) ++#define PGCNT_ID() PGCNT ++ ++#define PGCNT(P,n,m) P(n,m) Mjoin(PGCNT_,IS_ONE_CHECK(n))(P,DEC(n),m) ++#define IPGCNT(P,n) PGCNT(P,n,n) ++ ++ufixnum maxargs_for_awk=MAX_ARGS; ++ ++static inline object ++vc_apply_n(void *f, int n, object *x) { ++ ++ ++ switch (n) { ++ ++ case 0*(MAX_ARGS+1)+1: return ((object (*)(object ,...))f)(OBJNULL); ++ ++ /* EVAL(IPGCNT(OWLK,MAX_ARGS)) Too much memory on 32bit systems*/ ++ awk_generated_vc_apply_n_lines; ++ ++ default: FEerror("vc bar ~s",1,make_fixnum(n)); ++ ++ } ++ ++} ++ ++#define RCSTCL(m,n) case m: return ((object (*)(GCNT(PPP1,m,m)))f)(GCNT(PPP2,m,m)); ++#define PWLK(m,n) RCSTCL(m,m) ++ ++static inline object ++rc_apply_n(void *f, int n, object *x) { ++ ++ switch (n) { ++ ++ /* EVAL(IPGCNT(PWLK,MAX_ARGS)) Too much memory on 32bit systems*/ ++ awk_generated_rc_apply_n_lines; ++ ++ default: FEerror("rc bar ~s",1,make_fixnum(n)); ++ ++ } ++ ++} ++ ++static inline object ++c_apply_n_fun(object fun,int n,object *b) { ++ ++ return fun->fun.fun_minargfun.fun_maxarg ? ++ vc_apply_n(fun->fun.fun_self,n*(MAX_ARGS+1)+(fun->fun.fun_minarg ? fun->fun.fun_minarg : 1),b) : ++ rc_apply_n(fun->fun.fun_self,n,b); ++ ++} ++ ++object ++quick_call_function_vec(object fun,ufixnum n,object *b) { ++ ++ return c_apply_n_fun(fun,n,b); ++ ++} +--- gcl27-2.7.1.orig/o/print.d ++++ gcl27-2.7.1/o/print.d +@@ -156,9 +156,8 @@ static void + write_decimal1(int); + + static void +-write_decimal(i) +-int i; +-{ ++write_decimal(int i) { ++ + if (i == 0) { + write_ch('0'); + return; +@@ -623,17 +622,15 @@ writec_queue(int c,void *v) { + + + void +-write_str(s) +-char *s; +-{ ++write_str(char *s) { ++ + while (*s != '\0') + write_ch(*s++); + } + + static void +-write_decimal1(i) +-int i; +-{ ++write_decimal1(int i) { ++ + if (i == 0) + return; + write_decimal1(i/10); +@@ -641,9 +638,8 @@ int i; + } + + static void +-write_addr(x) +-object x; +-{ ++write_addr(object x) { ++ + long i; + int j, k; + +@@ -799,11 +795,8 @@ write_unreadable_str(object x,char *str) + } + + static void +-write_double(d, e, shortp) +-double d; +-int e; +-bool shortp; +-{ ++write_double(double d,int e,bool shortp) { ++ + int sign; + char buff[FPRC+5]; + int exp; +@@ -1847,10 +1840,8 @@ travel_find_sharing(object x,object tabl + } + + static bool +-potential_number_p(strng, base) +-object strng; +-int base; +-{ ++potential_number_p(object strng,int base) { ++ + int i, l, c, dc; + char *s; + +--- gcl27-2.7.1.orig/o/read.d ++++ gcl27-2.7.1/o/read.d +@@ -261,9 +261,8 @@ setup_READ() + } + + object +-read_char(in) +-object in; +-{ ++read_char(object in) { ++ + return(code_char(readc_stream(in))); + } + +@@ -286,9 +285,8 @@ read_char_no_echo(object in) { + #define read_char(in) code_char(readc_stream(in)) + + static void +-unread_char(c, in) +-object c, in; +-{ ++unread_char(object c,object in) { ++ + if (type_of(c) != t_character) + FEwrong_type_argument(sLcharacter, c); + unreadc_stream(char_code(c), in); +@@ -299,10 +297,8 @@ object c, in; + When pt is TRUE, preceeding whitespaces are ignored. + */ + object +-peek_char(pt, in) +-bool pt; +-object in; +-{ ++peek_char(bool pt,object in) { ++ + object c; + + if (pt) { +@@ -320,9 +316,8 @@ object in; + + + static object +-read_object_recursive(in) +-object in; +-{ ++read_object_recursive(object in) { ++ + VOL object x; + bool e; + +@@ -388,9 +383,8 @@ L: + + + object +-read_object_non_recursive(in) +-object in; +-{ ++read_object_non_recursive(object in) { ++ + VOL object x; + bool e; + object old_READtable; +@@ -509,9 +503,8 @@ L: + */ + + object +-read_object(in) +-object in; +-{ ++read_object(object in) { ++ + object x; + object c=Cnil; + enum chattrib a; +@@ -801,10 +794,8 @@ ENDUP: + Delim is not included in the string but discarded. + */ + static void +-read_string(delim, in) +-int delim; +-object in; +-{ ++read_string(int delim,object in) { ++ + int i; + object c; + +@@ -828,9 +819,8 @@ object in; + and places it in token_buffer. + */ + static void +-read_constituent(in) +-object in; +-{ ++read_constituent(object in) { ++ + int i, j; + object c; + +@@ -2159,9 +2149,8 @@ DEFUNM("PARSE-INTEGER-INT",object,fSpars + /* } */ + + object +-read_char1(strm,eof) +-object strm,eof; +-{ ++read_char1(object strm,object eof) { ++ + if (strm == Cnil) + strm = symbol_value(sLAstandard_inputA); + else if (strm == Ct) +@@ -2340,9 +2329,8 @@ DEFUN("SET-READTABLE-CASE",object,fSset_ + @) + + static object +-string_to_object(x) +-object x; +-{ ++string_to_object(object x) { ++ + object in; + vs_mark; + +--- gcl27-2.7.1.orig/o/run_process.c ++++ gcl27-2.7.1/o/run_process.c +@@ -374,10 +374,8 @@ static char *lisp_to_string(object strin + * for a service on the same host as the clinet. + * + */ +-static int open_connection(host,server) +-char *host; +-int server; +-{ ++static int open_connection(char *host,int server) { ++ + int res; + int pid; + int sock; +@@ -430,11 +428,8 @@ int server; + return(sock); + } + +-object make_stream(host_l,socket,smm) +-object host_l; +-int socket; +-enum smmode smm; +-{ ++object make_stream(object host_l,int socket,enum smmode smm) { ++ + char *mode=NULL; + object stream; + FILE *fp; +@@ -470,10 +465,8 @@ enum smmode smm; + } + + object +-make_socket_stream(host_l,port) +-object host_l; +-object port; +-{ ++make_socket_stream(object host_l,object port) { ++ + char *host = lisp_to_string(host_l); + object stream_in; + object stream_out; +@@ -574,8 +567,6 @@ spawn_process_with_streams(object istrea + close(fileno(istream->sm.sm_fp)); + close(fileno(ostream->sm.sm_fp)); + +- emsg("\n***** Spawning process %s ", pname); +- + errno=0; + execvp(pname,argv); + _exit(128|(errno&0x7f)); +--- gcl27-2.7.1.orig/o/sequence.d ++++ gcl27-2.7.1/o/sequence.d +@@ -269,9 +269,8 @@ LFD(Lcopy_seq)() + } + + int +-length(x) +-object x; +-{ ++length(object x) { ++ + int i; + + switch (type_of(x)) { +@@ -317,9 +316,8 @@ LFD(Lreverse)() + } + + object +-reverse(seq) +-object seq; +-{ ++reverse(object seq) { ++ + object x, y, *v; + int i, j, k; + +@@ -430,9 +428,8 @@ LFD(Lnreverse)() + } + + object /*FIXME boot*/ +-nreverse(seq) +-object seq; +-{ ++nreverse(object seq) { ++ + object x, y, z; + int i, j, k; + +--- gcl27-2.7.1.orig/o/sockets.c ++++ gcl27-2.7.1/o/sockets.c +@@ -53,9 +53,6 @@ Foundation, 675 Mass Ave, Cambridge, MA + + #include + +-static void write_timeout_error(); +-static void connection_failure(); +- + #ifdef __MINGW32__ + /* Keep track of socket initialisations */ + int w32_socket_initialisations = 0; +@@ -554,15 +551,13 @@ DEFUN("CLEAR-CONNECTION-STATE",object,fS + #endif + + static void +-write_timeout_error(s) +- char *s; +-{FEerror("Write timeout: ~s",1,make_simple_string(s)); ++write_timeout_error(char *s) { ++ FEerror("Write timeout: ~s",1,make_simple_string(s)); + } + + static void +-connection_failure(s) +- char *s; +-{FEerror("Connect failure: ~s",1,make_simple_string(s)); ++connection_failure(char *s) { ++ FEerror("Connect failure: ~s",1,make_simple_string(s)); + } + + +--- gcl27-2.7.1.orig/o/string.d ++++ gcl27-2.7.1/o/string.d +@@ -82,9 +82,8 @@ alloc_simple_string(fixnum l) { + Make_simple_string(s) makes a simple string from C string s. + */ + object +-make_simple_string(s) +-const char *s; +-{ ++make_simple_string(const char *s) { ++ + int l, i; + char *p; + object x; +@@ -103,9 +102,8 @@ const char *s; + } + + object +-make_string(s) +-char *s; +-{ ++make_string(char *s) { ++ + int l, i; + char *p; + object x; +@@ -128,9 +126,8 @@ char *s; + This correponds to string= (just the string equality). + */ + bool +-string_eq(x, y) +-object x, y; +-{ ++string_eq(object x,object y) { ++ + int i, j; + + +@@ -151,9 +148,8 @@ object x, y; + (string equality ignoring the case). + */ + bool +-string_equal(x, y) +-object x, y; +-{ ++string_equal(object x,object y) { ++ + int i, j; + char *p, *q; + +@@ -178,9 +174,8 @@ object x, y; + Copy_simple_string(x) copies string x to a simple string. + */ + object +-copy_simple_string(x) +-object x; +-{ ++copy_simple_string(object x) { ++ + object y; + int i; + vs_mark; +@@ -205,9 +200,8 @@ object x; + } + + object +-copy_string(x) +-object x; +-{ ++copy_string(object x) { ++ + object y; + int i; + vs_mark; +@@ -238,9 +232,8 @@ object x; + } + + object +-coerce_to_string(x) +-object x; +-{ ++coerce_to_string(object x) { ++ + object y; + vs_mark; + +@@ -276,10 +269,8 @@ object x; + + + void +-get_string_start_end(str, start, end, ps, pe) +-object str, start, end; +-int *ps, *pe; +-{ ++get_string_start_end(object str,object start,object end,int *ps,int *pe) { ++ + if (start == Cnil) + *ps = 0; + else if (type_of(start) != t_fixnum) +@@ -458,10 +449,7 @@ LFD(Lstring_not_equal)() { string_sign + @) + + static bool +-member_char(c, char_bag) +-int c; +-object char_bag; +-{ ++member_char(int c,object char_bag) { + + int i, f; + +@@ -533,27 +521,24 @@ LFD(Lstring_trim)() { left_trim = right_ + LFD(Lstring_left_trim)() { left_trim = TRUE; right_trim = FALSE; FFN(Lstring_trim0)(); } + LFD(Lstring_right_trim)() { left_trim = FALSE; right_trim = TRUE; FFN(Lstring_trim0)();} + +-static int char_upcase(c, bp) +-int c, *bp; +-{ ++static int char_upcase(int c,int *bp) { ++ + if (isLower(c)) + return(c - ('a' - 'A')); + else + return(c); + } + +-static int char_downcase(c, bp) +-int c, *bp; +-{ ++static int char_downcase(int c,int *bp) { ++ + if (isUpper(c)) + return(c + ('a' - 'A')); + else + return(c); + } + +-static int char_capitalize(c, bp) +-int c, *bp; +-{ ++static int char_capitalize(int c,int *bp) { ++ + if (isLower(c)) { + if (*bp) + c -= 'a' - 'A'; +@@ -571,7 +556,7 @@ int c, *bp; + + @(static defun string_case (strng &key start end &aux conv) + int s=0, e=0, i; +- bool b; ++ int b; + @ + strng = coerce_to_string(strng); + get_string_start_end(strng, start, end, &s, &e); +@@ -590,7 +575,7 @@ LFD(Lstring_capitalize)() { casefun = ch + + @(static defun nstring_case (strng &key start end) + int s=0, e=0, i; +- bool b; ++ int b; + @ + check_type_string(&strng); + get_string_start_end(strng, start, end, &s, &e); +--- gcl27-2.7.1.orig/o/symbol.d ++++ gcl27-2.7.1/o/symbol.d +@@ -40,9 +40,8 @@ odd_plist(object); + object siSpname; + + object +-make_symbol(st) +-object st; +-{ ++make_symbol(object st) { ++ + object x; + + {BEGIN_NO_INTERRUPT; +@@ -70,9 +69,8 @@ object st; + + + object +-make_ordinary(s) +-char *s; +-{ ++make_ordinary(char *s) { ++ + int j; + object x, l, *ep; + vs_mark; +@@ -96,10 +94,8 @@ char *s; + with initial value v in lisp package. + */ + object +-make_special(s, v) +-char *s; +-object v; +-{ ++make_special(char *s,object v) { ++ + object x; + + x = make_ordinary(s); +@@ -113,10 +109,8 @@ object v; + with constant value v in lisp package. + */ + object +-make_constant(s, v) +-char *s; +-object v; +-{ ++make_constant(char *s,object v) { ++ + object x; + + x = make_ordinary(s); +@@ -134,9 +128,8 @@ object v; + + + object +-make_si_ordinary(s) +-char *s; +-{ ++make_si_ordinary(char *s) { ++ + int j; + object x, l, *ep; + vs_mark; +@@ -161,9 +154,8 @@ char *s; + } + + object +-make_gmp_ordinary(s) +-char *s; +-{ ++make_gmp_ordinary(char *s) { ++ + int i,j; + object x, l, *ep; + vs_mark; +@@ -196,10 +188,8 @@ char *s; + with initial value v in system package. + */ + object +-make_si_special(s, v) +-char *s; +-object v; +-{ ++make_si_special(char *s,object v) { ++ + object x; + + x = make_si_ordinary(s); +@@ -213,25 +203,23 @@ object v; + with constant value v in system package. + */ + object +-make_si_constant(s, v) +-char *s; +-object v; +-{ ++make_si_constant(char *s,object v) { ++ + object x; + + x = make_si_ordinary(s); + x->s.s_stype = (short)stp_constant; + x->s.s_dbind = v; + return(x); ++ + } + + /* + Make_keyword(s) makes a keyword from C string s. + */ + object +-make_keyword(s) +-char *s; +-{ ++make_keyword(char *s) { ++ + int j; + object x, l, *ep; + vs_mark; +@@ -254,9 +242,8 @@ char *s; + } + + object +-symbol_value(s) +-object s; +-{ ++symbol_value(object s) { ++ + /* + if (type_of(s) != t_symbol) + FEinvalid_variable("~S is not a symbol.", s); +@@ -267,9 +254,7 @@ object s; + } + + object +-getf(place, indicator, deflt) +-object place, indicator, deflt; +-{ ++getf(object place,object indicator,object deflt) { + + object l; + #define cendp(obj) ((!consp(obj))) +@@ -285,9 +270,8 @@ object place, indicator, deflt; + } + + object +-get(s, p, d) +-object s, p, d; +-{ ++get(object s,object p,object d) { ++ + if (type_of(s) != t_symbol) + not_a_symbol(s); + return(getf(s->s.s_plist, p, d)); +@@ -298,9 +282,8 @@ object s, p, d; + and returns the resulting property list. + */ + object +-putf(p, v, i) +-object p, v, i; +-{ ++putf(object p,object v,object i) { ++ + object l; + + for (l = p; !cendp(l); l = l->c.c_cdr->c.c_cdr) { +@@ -316,9 +299,8 @@ object p, v, i; + } + + object +-putprop(s, v, p) +-object s, v, p; +-{ ++putprop(object s,object v,object p) { ++ + if (type_of(s) != t_symbol) + not_a_symbol(s); + s->s.s_plist = putf(s->s.s_plist, v, p); +@@ -350,9 +332,8 @@ fSsputprop(object x,object y,object z) { + FALSE otherwise. + */ + bool +-remf(p, i) +-object *p, i; +-{ ++remf(object *p,object i) { ++ + object l0 = *p; + + for(; !endp(*p); p = &(*p)->c.c_cdr->c.c_cdr) { +@@ -367,9 +348,8 @@ object *p, i; + } + + object +-remprop(s, p) +-object s, p; +-{ ++remprop(object s,object p) { ++ + if (type_of(s) != t_symbol) + not_a_symbol(s); + if (remf(&s->s.s_plist, p)) +@@ -379,9 +359,8 @@ object s, p; + } + + bool +-keywordp(s) +-object s; +-{ ++keywordp(object s) { ++ + return(type_of(s) == t_symbol && s->s.s_hpack == keyword_package); + /* + if (type_of(s) != t_symbol) { +@@ -445,11 +424,11 @@ DEFUN("SYMBOL-STRING",object,fSsymbol_st + + + object +-symbol_name(x) +-object x; +-{ ++symbol_name(object x) { ++ + if (type_of(x)!=t_symbol) FEwrong_type_argument(sLsymbol,x); + return(x->s.s_name); ++ + } + + DEFUN("SYMBOL-NAME",object,fLsymbol_name,LISP,1,1,NONE,OO,OO,OO,OO,(object sym),"") { +@@ -674,9 +653,7 @@ LFD(siLputprop)() + + + static void +-odd_plist(place) +-object place; +-{ ++odd_plist(object place) { + FEerror("The length of the property-list ~S is odd.", 1, place); + } + +--- gcl27-2.7.1.orig/o/toplevel.c ++++ gcl27-2.7.1/o/toplevel.c +@@ -188,8 +188,7 @@ FFN(Fload_time_value)(object arg) + + } + +-static void +-FFN(Fdeclare)(object arg) ++LFD(Fdeclare)(void) + { + FEerror("DECLARE appeared in an invalid position.", 0); + } +--- gcl27-2.7.1.orig/o/unexelf.c ++++ gcl27-2.7.1/o/unexelf.c +@@ -583,9 +583,8 @@ typedef unsigned char byte; + /* Round X up to a multiple of Y. */ + + static ElfW(Addr) +-round_up (x, y) +- ElfW(Addr) x, y; +-{ ++round_up (ElfW(Addr) x,ElfW(Addr) y) { ++ + int rem = x % y; + if (rem == 0) + return x; +--- gcl27-2.7.1.orig/o/usig.c ++++ gcl27-2.7.1/o/usig.c +@@ -47,11 +47,10 @@ Foundation, 675 Mass Ave, Cambridge, MA + + extern char signals_handled[]; + +-void +-main_signal_handler(int,siginfo_t,void *); ++extern handler_function_type main_signal_handler; + + void +-gcl_signal(int signo, void (*handler) (/* ??? */)) ++gcl_signal(int signo, void (*handler)(int,long,void *,char *)) + { + char *p = signals_handled; + while (*p) +@@ -66,7 +65,7 @@ gcl_signal(int signo, void (*handler) (/ + + #ifdef HAVE_SIGACTION + struct sigaction action; +- action.sa_sigaction = handler; ++ action.sa_sigaction = (void *)handler; + /* action.sa_flags = SA_RESTART | ((signo == SIGSEGV || signo == SIGBUS) ? SV_ONSTACK : 0) */ + action.sa_flags = SA_RESTART | ((signo == SIGSEGV || signo == SIGBUS) ? SA_ONSTACK : 0) + #ifdef SA_SIGINFO +@@ -178,7 +177,7 @@ DEFUN("FEENABLEEXCEPT",object,fSfeenable + + DEFUN("FEDISABLEEXCEPT",object,fSfedisableexcept,SI,0,0,NONE,IO,OO,OO,OO,(void),"") { + +- fixnum x; ++ fixnum x=0; + + #ifdef HAVE_FEENABLEEXCEPT + +@@ -228,8 +227,9 @@ DEFUN("STMXCSR",object,fSstmxcsr,SI,0,0, + + + static void +-sigfpe3(int sig,siginfo_t *i,void *v) { ++sigfpe3(int sig,long li,void *v,char *c) { + ++ siginfo_t *i=(void *)li; + unblock_signals(SIGFPE,SIGFPE); + #ifdef __MINGW32__ + gcl_signal(SIGFPE,sigfpe3); +@@ -255,7 +255,7 @@ DEFCONST("+FE-LIST+",sSPfe_listP,SI,list + DEF_ORDINARY("FLOATING-POINT-ERROR",sSfloating_point_error,SI,""); + + static void +-sigpipe(int s,siginfo_t *a,void *b) ++sigpipe(int s,long la,void *b,char *c) + { + unblock_signals(SIGPIPE,SIGPIPE); + perror(""); +@@ -263,14 +263,14 @@ sigpipe(int s,siginfo_t *a,void *b) + } + + void +-sigint(int s,siginfo_t *a,void *b) ++sigint(int s,long la,void *b,char *c) + { + unblock_signals(SIGINT,SIGINT); + terminal_interrupt(1); + } + + static void +-sigalrm(int s,siginfo_t *a,void *b) ++sigalrm(int s,long a,void *b,char *c) + { + unblock_signals(SIGALRM,SIGALRM); + raise_pending_signals(sig_try_to_delay); +@@ -282,7 +282,7 @@ DEF_ORDINARY("SIGUSR1-INTERRUPT",sSsigus + DEF_ORDINARY("SIGIO-INTERRUPT",sSsigio_interrupt,SI,""); + + static void +-sigusr1(int s,siginfo_t *a,void *b) { ++sigusr1(int s,long a,void *b,char *c) { + + unblock_signals(SIGUSR1,SIGUSR1); + ifuncall1(sSsigusr1_interrupt,Cnil); +@@ -290,12 +290,12 @@ sigusr1(int s,siginfo_t *a,void *b) { + } + + static void +-sigio(int s,siginfo_t *a,void *b) ++sigio(int s,long a,void *b,char *c) + {ifuncall1(sSsigio_interrupt,Cnil);} + + + static void +-sigterm(int s,siginfo_t *a,void *b) ++sigterm(int s,long la,void *b,char *c) + {do_gcl_abort();} + + +--- gcl27-2.7.1.orig/o/usig2.c ++++ gcl27-2.7.1/o/usig2.c +@@ -167,7 +167,7 @@ only in very SAFE places.") + + + void +-main_signal_handler(int signo,siginfo_t *a,void *b) ++main_signal_handler(int signo,long a,void *b,char *c) + { int allowed = signals_allowed; + #ifdef NEED_TO_REINSTALL_SIGNALS + signal(signo,main_signal_handler); +@@ -201,7 +201,7 @@ invoke_handler(int signo, int allowed) + {int prev_in_handler = in_signal_handler; + in_signal_handler |= (allowed <= sig_normal ? 1 : 0); + signals_allowed = allowed; +- our_signal_handler[signo](signo,0,0); ++ our_signal_handler[signo](signo,0,0,0); + signals_allowed = 0; + in_signal_handler = prev_in_handler; + after_interrupt(&buf,allowed); +--- gcl27-2.7.1.orig/texinfo.tex ++++ gcl27-2.7.1/texinfo.tex +@@ -1,11 +1,11 @@ + % texinfo.tex -- TeX macros to handle Texinfo files. +-% ++% + % Load plain if necessary, i.e., if running under initex. + \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi + % +-\def\texinfoversion{2024-02-10.22} ++\def\texinfoversion{2025-10-25.20} + % +-% Copyright 1985, 1986, 1988, 1990-2024 Free Software Foundation, Inc. ++% Copyright 1985, 1986, 1988, 1990-2025 Free Software Foundation, Inc. + % + % This texinfo.tex file is free software: you can redistribute it and/or + % modify it under the terms of the GNU General Public License as +@@ -156,8 +156,9 @@ + % Give the space character the catcode for a space. + \def\spaceisspace{\catcode`\ =10\relax} + +-% Likewise for ^^M, the end of line character. +-\def\endlineisspace{\catcode13=10\relax} ++% Used to ignore an active newline that may appear immediately after ++% a macro name. ++{\catcode13=\active \gdef\ignoreactivenewline{\let^^M\empty}} + + \chardef\dashChar = `\- + \chardef\slashChar = `\/ +@@ -212,7 +213,7 @@ + % @errormsg{MSG}. Do the index-like expansions on MSG, but if things + % aren't perfect, it's not the end of the world, being an error message, + % after all. +-% ++% + \def\errormsg{\begingroup \indexnofonts \doerrormsg} + \def\doerrormsg#1{\errmessage{#1}} + +@@ -286,7 +287,6 @@ + % Avoid "undefined control sequence" errors. + \def\currentchapterdefs{} + \def\currentsectiondefs{} +-\def\currentsection{} + \def\prevchapterdefs{} + \def\prevsectiondefs{} + \def\currentcolordefs{} +@@ -425,7 +425,7 @@ + }% + } + +-% First remove any @comment, then any @c comment. Pass the result on to ++% First remove any @comment, then any @c comment. Pass the result on to + % \argremovespace. + \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} + \def\argremovec#1\c#2\ArgTerm{\argremovespace#1$ $\ArgTerm} +@@ -483,8 +483,8 @@ + % \envdef\foo{...} + % \def\Efoo{...} + % +-% It's the responsibility of \envdef to insert \begingroup before the +-% actual body; @end closes the group after calling \Efoo. \envdef also ++% \envdef inserts \begingroup before the actual body; @end calls ++% \Efoo then closes the group with \endgroup. \envdef also + % defines \thisenv, so the current environment is known; @end checks + % whether the environment name matches. The \checkenv macro can also be + % used to check whether the current environment is the one expected. +@@ -951,8 +951,16 @@ where each line of input produces a line + \let\setfilename=\comment + + % @bye. +-\outer\def\bye{\chappager\pagelabels\tracingstats=1\ptexend} +- ++\outer\def\bye{% ++ \chappager\pagelabels ++ % possibly set in \printindex ++ \ifx\byeerror\relax\else\errmessage{\byeerror}\fi ++ \tracingstats=1\ptexend} ++ ++% set in \donoderef below, but we need to define this here so that ++% conditionals balance inside the large \ifpdf ... \fi blocks below. ++\newif\ifnodeseen ++\nodeseenfalse + + \message{pdf,} + % adobe `portable' document format +@@ -971,15 +979,52 @@ where each line of input produces a line + \newif\ifpdf + \newif\ifpdfmakepagedest + ++% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 ++% can be set). So we test for \relax and 0 as well as being undefined. ++\ifx\pdfoutput\thisisundefined ++\else ++ \ifx\pdfoutput\relax ++ \else ++ \ifcase\pdfoutput ++ \else ++ \pdftrue ++ \fi ++ \fi ++\fi ++ ++\newif\ifxetex ++\ifx\XeTeXrevision\thisisundefined\else ++ \xetextrue ++\fi ++ ++\newif\ifluatex ++\ifx\luatexversion\thisisundefined\else ++ \luatextrue ++ \ifnum\luatexversion>84 ++ \pdftrue ++ \fi ++\fi ++ ++\newif\ifpdforxetex ++\ifpdf ++ \pdforxetextrue ++\fi ++\ifxetex ++ \pdforxetextrue ++\fi ++ ++ ++ ++% Whether to use non-ASCII bytes in internal link targets. Presently this ++% is almost always on. ++\newif\iftxiuseunicodedestname ++\txiuseunicodedestnametrue ++ + % + % For LuaTeX + % + +-\newif\iftxiuseunicodedestname +-\txiuseunicodedestnamefalse % For pdfTeX etc. +- +-\ifx\luatexversion\thisisundefined +-\else ++\ifluatex + % Use Unicode destination names + \txiuseunicodedestnametrue + % Escape PDF strings with converting UTF-16 from UTF-8 +@@ -1026,13 +1071,13 @@ where each line of input produces a line + end + end + } +- % The -2 in the arguments here gives all the input to TeX catcode 12 +- % (other) or 10 (space), preventing undefined control sequence errors. See ++ % The -2 in the arguments here gives all the input to TeX catcode 12 ++ % (other) or 10 (space), preventing undefined control sequence errors. See + % https://lists.gnu.org/archive/html/bug-texinfo/2019-08/msg00031.html + % + \endgroup + \def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}} +- \ifnum\luatexversion>84 ++ \ifpdf + % For LuaTeX >= 0.85 + \def\pdfdest{\pdfextension dest} + \let\pdfoutput\outputmode +@@ -1055,28 +1100,6 @@ where each line of input produces a line + \fi + \fi + +-% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 +-% can be set). So we test for \relax and 0 as well as being undefined. +-\ifx\pdfoutput\thisisundefined +-\else +- \ifx\pdfoutput\relax +- \else +- \ifcase\pdfoutput +- \else +- \pdftrue +- \fi +- \fi +-\fi +- +-\newif\ifpdforxetex +-\pdforxetexfalse +-\ifpdf +- \pdforxetextrue +-\fi +-\ifx\XeTeXrevision\thisisundefined\else +- \pdforxetextrue +-\fi +- + + % Output page labels information. + % See PDF reference v.1.7 p.594, section 8.3.1. +@@ -1129,7 +1152,7 @@ where each line of input produces a line + % for display in the outlines, and in other places. Thus, we have to + % double any backslashes. Otherwise, a name like "\node" will be + % interpreted as a newline (\n), followed by o, d, e. Not good. +-% ++% + % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and + % related messages. The final outcome is that it is up to the TeX user + % to double the backslashes and otherwise make the string valid, so +@@ -1163,58 +1186,90 @@ with PDF output, and none of those forma + be supported due to the design of the PDF format; use regular TeX (DVI + output) for that.)} + ++% definitions for pdftex or luatex with pdf output + \ifpdf ++ % Strings in PDF outlines can either be ASCII, or encoded in UTF-16BE ++ % with BOM. Unfortunately there is no simple way with pdftex to output ++ % UTF-16, so we have to do some quite convoluted expansion games if we ++ % find the string contains a non-ASCII codepoint if we want these to ++ % display correctly. We generated the UTF-16 sequences in ++ % \DeclareUnicodeCharacter and we access them here. + % +- % Color manipulation macros using ideas from pdfcolor.tex, +- % except using rgb instead of cmyk; the latter is said to render as a +- % very dark gray on-screen and a very dark halftone in print, instead +- % of actual black. The dark red here is dark enough to print on paper as +- % nearly black, but still distinguishable for online viewing. We use +- % black by default, though. +- \def\rgbDarkRed{0.50 0.09 0.12} +- \def\rgbBlack{0 0 0} ++ \def\defpdfoutlinetextunicode#1{% ++ \def\pdfoutlinetext{#1}% ++ % ++ % Make UTF-8 sequences expand to UTF-16 definitions. ++ \passthroughcharsfalse \utfbytespdftrue ++ \utfviiidefinedwarningfalse ++ % ++ % Completely expand, eliminating any control sequences such as \code, ++ % leaving only possibly \utfbytes. ++ \let\utfbytes\relax ++ \pdfaccentliterals ++ \xdef\pdfoutlinetextchecked{#1}% ++ \checkutfbytes ++ }% ++ % Check if \utfbytes occurs in expansion. ++ \def\checkutfbytes{% ++ \expandafter\checkutfbytesz\pdfoutlinetextchecked\utfbytes\finish ++ }% ++ \def\checkutfbytesz#1\utfbytes#2\finish{% ++ \def\after{#2}% ++ \ifx\after\empty ++ % No further action needed. Output ASCII string as-is, as converting ++ % to UTF-16 is somewhat slow (and uses more space). ++ \global\let\pdfoutlinetext\pdfoutlinetextchecked ++ \else ++ \passthroughcharstrue % pass UTF-8 sequences unaltered ++ \xdef\pdfoutlinetext{\pdfoutlinetext}% ++ \expandafter\expandutfsixteen\expandafter{\pdfoutlinetext}\pdfoutlinetext ++ \fi ++ }% + % +- % rg sets the color for filling (usual text, etc.); +- % RG sets the color for stroking (thin rules, e.g., normal _'s). +- \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} ++ \catcode2=1 % begin-group character ++ \catcode3=2 % end-group character + % +- % Set color, and create a mark which defines \thiscolor accordingly, +- % so that \makeheadline knows which color to restore. +- \def\curcolor{0 0 0}% +- \def\setcolor#1{% +- \ifx#1\curcolor\else +- \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}% +- \domark +- \pdfsetcolor{#1}% +- \xdef\curcolor{#1}% +- \fi +- } ++ % argument should be pure UTF-8 with no control sequences. convert to ++ % UTF-16BE by inserting null bytes before bytes < 128 and expanding ++ % UTF-8 multibyte sequences to saved UTF-16BE sequences. ++ \def\expandutfsixteen#1#2{% ++ \bgroup \asciitounicode ++ \passthroughcharsfalse ++ \let\utfbytes\asis ++ % ++ % for Byte Order Mark (BOM) ++ \catcode"FE=12 ++ \catcode"FF=12 ++ % ++ % we want to treat { and } in #1 as any other ASCII bytes. however, ++ % we need grouping characters for \scantokens and definitions/assignments, ++ % so define alternative grouping characters using control characters ++ % that are unlikely to occur. ++ % this does not affect 0x02 or 0x03 bytes arising from expansion as ++ % these are tokens with different catcodes. ++ \catcode"02=1 % begin-group character ++ \catcode"03=2 % end-group character ++ % ++ \expandafter\xdef\expandafter#2\scantokens{% ++ ^^02^^fe^^ff#1^^03}% ++ % NB we need \scantokens to provide both the open and close group tokens ++ % for \xdef otherwise there is an e-TeX error "File ended while ++ % scanning definition of..." ++ % NB \scantokens is a e-TeX command which is assumed to be provided by ++ % pdfTeX. ++ % ++ \egroup ++ }% + % +- \let\maincolor\rgbBlack +- \pdfsetcolor{\maincolor} +- \edef\thiscolor{\maincolor} +- \def\currentcolordefs{} ++ \catcode2=12 \catcode3=12 % defaults + % +- \def\makefootline{% +- \baselineskip24pt +- \line{\pdfsetcolor{\maincolor}\the\footline}% +- } ++ % Color support + % +- \def\makeheadline{% +- \vbox to 0pt{% +- \vskip-22.5pt +- \line{% +- \vbox to8.5pt{}% +- % Extract \thiscolor definition from the marks. +- \getcolormarks +- % Typeset the headline with \maincolor, then restore the color. +- \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% +- }% +- \vss +- }% +- \nointerlineskip +- } ++ % rg sets the color for filling (usual text, etc.); ++ % RG sets the color for stroking (thin rules, e.g., normal _'s). ++ \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} + % ++ % PDF outline support + % + \pdfcatalog{/PageMode /UseOutlines} + % +@@ -1311,18 +1366,15 @@ output) for that.)} + \def\pdfoutlinetext{#1}% + \else + \ifx \declaredencoding \utfeight +- \ifx\luatexversion\thisisundefined +- % For pdfTeX with UTF-8. +- % TODO: the PDF format can use UTF-16 in bookmark strings, +- % but the code for this isn't done yet. +- % Use ASCII approximations. +- \passthroughcharsfalse +- \def\pdfoutlinetext{#1}% +- \else ++ \ifluatex + % For LuaTeX with UTF-8. + % Pass through Unicode characters for title texts. + \passthroughcharstrue +- \def\pdfoutlinetext{#1}% ++ \pdfaccentliterals ++ \xdef\pdfoutlinetext{#1}% ++ \else ++ % For pdfTeX with UTF-8. ++ \defpdfoutlinetextunicode{#1}% + \fi + \else + % For non-Latin-1 or non-UTF-8 encodings. +@@ -1341,14 +1393,6 @@ output) for that.)} + \safewhatsit{\pdfdest name{\pdfdestname} xyz}% + } + % +- % used to mark target names; must be expandable. +- \def\pdfmkpgn#1{#1} +- % +- % by default, use black for everything. +- \def\urlcolor{\rgbBlack} +- \let\linkcolor\rgbBlack +- \def\endlink{\setcolor{\maincolor}\pdfendlink} +- % + % Adding outlines to PDF; macros for calculating structure of outlines + % come from Petr Olsak + \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% +@@ -1374,7 +1418,7 @@ output) for that.)} + \def\pdfdestname{#4}% + \fi + % +- \pdfoutline goto name{\pdfmkpgn{\pdfdestname}}#2{\pdfoutlinetext}% ++ \pdfoutline goto name{\pdfdestname}#2{\pdfoutlinetext}% + } + % + \def\pdfmakeoutlines{% +@@ -1385,15 +1429,18 @@ output) for that.)} + \def\thischapnum{##2}% + \def\thissecnum{0}% + \def\thissubsecnum{0}% ++ \def\indexlastsec{chap\thischapnum}% + }% + \def\numsecentry##1##2##3##4{% + \advancenumber{chap\thischapnum}% + \def\thissecnum{##2}% + \def\thissubsecnum{0}% ++ \def\indexlastsec{sec\thissecnum}% + }% + \def\numsubsecentry##1##2##3##4{% + \advancenumber{sec\thissecnum}% + \def\thissubsecnum{##2}% ++ \def\indexlastsec{subsec\thissecnum}% + }% + \def\numsubsubsecentry##1##2##3##4{% + \advancenumber{subsec\thissubsecnum}% +@@ -1401,7 +1448,13 @@ output) for that.)} + \def\thischapnum{0}% + \def\thissecnum{0}% + \def\thissubsecnum{0}% ++ \let\indexlastsec\empty + % ++ % Index initials are subsidiary to whatever sectioning command just ++ % occurred, usually @appendix or @chapter but occasionally a lower level. ++ \def\idxinitialentry##1##2##3##4{% ++ \expandafter\advancenumber\expandafter{\indexlastsec}% ++ }% + % use \def rather than \let here because we redefine \chapentry et + % al. a second time, below. + \def\appentry{\numchapentry}% +@@ -1412,6 +1465,7 @@ output) for that.)} + \def\unnsecentry{\numsecentry}% + \def\unnsubsecentry{\numsubsecentry}% + \def\unnsubsubsecentry{\numsubsubsecentry}% ++ % + \readdatafile{toc}% + % + % Read toc second time, this time actually producing the outlines. +@@ -1421,7 +1475,7 @@ output) for that.)} + % We use the node names as the destinations. + % + % Currently we prefix the section name with the section number +- % for chapter and appendix headings only in order to avoid too much ++ % for chapter and appendix headings only in order to avoid too much + % horizontal space being required in the PDF viewer. + \def\numchapentry##1##2##3##4{% + \dopdfoutline{##2 ##1}{count-\expnumber{chap##2}}{##3}{##4}}% +@@ -1433,28 +1487,23 @@ output) for that.)} + \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% + \def\numsubsubsecentry##1##2##3##4{% count is always zero + \dopdfoutline{##1}{}{##3}{##4}}% +- % +- % PDF outlines are displayed using system fonts, instead of +- % document fonts. Therefore we cannot use special characters, +- % since the encoding is unknown. For example, the eogonek from +- % Latin 2 (0xea) gets translated to a | character. Info from +- % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. +- % +- % TODO this right, we have to translate 8-bit characters to +- % their "best" equivalent, based on the @documentencoding. Too +- % much work for too little return. Just use the ASCII equivalents +- % we use for the index sort strings. +- % +- \indexnofonts ++ \def\idxinitialentry##1##2##3##4{% ++ \dopdfoutline{##1}{}{idx.##1.##2}{##4}}% ++ % ++ \ifnodeseen\else \dopdfoutlinecontents \fi % for @contents at beginning + \setupdatafile + % We can have normal brace characters in the PDF outlines, unlike + % Texinfo index files. So set that up. + \def\{{\lbracecharliteral}% + \def\}{\rbracecharliteral}% + \catcode`\\=\active \otherbackslash +- \input \tocreadfilename ++ \input \tocreadfilename\relax ++ \ifnodeseen \dopdfoutlinecontents \fi % for @contents at end + \endgroup + } ++ \def\dopdfoutlinecontents{% ++ \expandafter\dopdfoutline\expandafter{\putwordTOC}{}{txi.CONTENTS}{}% ++ } + {\catcode`[=1 \catcode`]=2 + \catcode`{=\other \catcode`}=\other + \gdef\lbracecharliteral[{]% +@@ -1480,55 +1529,16 @@ output) for that.)} + \else + \let \startlink \pdfstartlink + \fi +- % make a live url in pdf output. +- \def\pdfurl#1{% +- \begingroup +- % it seems we really need yet another set of dummies; have not +- % tried to figure out what each command should do in the context +- % of @url. for now, just make @/ a no-op, that's the only one +- % people have actually reported a problem with. +- % +- \normalturnoffactive +- \def\@{@}% +- \let\/=\empty +- \makevalueexpandable +- % do we want to go so far as to use \indexnofonts instead of just +- % special-casing \var here? +- \def\var##1{##1}% +- % +- \leavevmode\setcolor{\urlcolor}% +- \startlink attr{/Border [0 0 0]}% +- user{/Subtype /Link /A << /S /URI /URI (#1) >>}% +- \endgroup} +- % \pdfgettoks - Surround page numbers in #1 with @pdflink. #1 may +- % be a simple number, or a list of numbers in the case of an index +- % entry. +- \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} +- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} +- \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} +- \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} +- \def\maketoks{% +- \expandafter\poptoks\the\toksA|ENDTOKS|\relax +- \ifx\first0\adn0 +- \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 +- \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 +- \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 +- \else +- \ifnum0=\countA\else\makelink\fi +- \ifx\first.\let\next=\done\else +- \let\next=\maketoks +- \addtokens{\toksB}{\the\toksD} +- \ifx\first,\addtokens{\toksB}{\space}\fi +- \fi +- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +- \next} +- \def\makelink{\addtokens{\toksB}% +- {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} ++ \def\pdfmakeurl#1{% ++ \startlink attr{/Border [0 0 0]}% ++ user{/Subtype /Link /A << /S /URI /URI (#1) >>}% ++ }% ++ \def\endlink{\setcolor{\maincolor}\pdfendlink} ++ % + \def\pdflink#1{\pdflinkpage{#1}{#1}}% + \def\pdflinkpage#1#2{% +- \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} ++ \startlink attr{/Border [0 0 0]} goto name{#1} + \setcolor{\linkcolor}#2\endlink} +- \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} + \else + % non-pdf mode + \let\pdfmkdest = \gobble +@@ -1537,13 +1547,12 @@ output) for that.)} + \let\setcolor = \gobble + \let\pdfsetcolor = \gobble + \let\pdfmakeoutlines = \relax +-\fi % \ifx\pdfoutput ++\fi + + % + % For XeTeX + % +-\ifx\XeTeXrevision\thisisundefined +-\else ++\ifxetex + % + % XeTeX version check + % +@@ -1569,45 +1578,8 @@ output) for that.)} + \fi + % + % Color support +- % +- \def\rgbDarkRed{0.50 0.09 0.12} +- \def\rgbBlack{0 0 0} +- % + \def\pdfsetcolor#1{\special{pdf:scolor [#1]}} + % +- % Set color, and create a mark which defines \thiscolor accordingly, +- % so that \makeheadline knows which color to restore. +- \def\setcolor#1{% +- \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}% +- \domark +- \pdfsetcolor{#1}% +- } +- % +- \def\maincolor{\rgbBlack} +- \pdfsetcolor{\maincolor} +- \edef\thiscolor{\maincolor} +- \def\currentcolordefs{} +- % +- \def\makefootline{% +- \baselineskip24pt +- \line{\pdfsetcolor{\maincolor}\the\footline}% +- } +- % +- \def\makeheadline{% +- \vbox to 0pt{% +- \vskip-22.5pt +- \line{% +- \vbox to8.5pt{}% +- % Extract \thiscolor definition from the marks. +- \getcolormarks +- % Typeset the headline with \maincolor, then restore the color. +- \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% +- }% +- \vss +- }% +- \nointerlineskip +- } +- % + % PDF outline support + % + % Emulate pdfTeX primitive +@@ -1645,11 +1617,6 @@ output) for that.)} + \safewhatsit{\pdfdest name{\pdfdestname} xyz}% + } + % +- % by default, use black for everything. +- \def\urlcolor{\rgbBlack} +- \def\linkcolor{\rgbBlack} +- \def\endlink{\setcolor{\maincolor}\pdfendlink} +- % + \def\dopdfoutline#1#2#3#4{% + \setpdfoutlinetext{#1} + \setpdfdestname{#3} +@@ -1663,24 +1630,30 @@ output) for that.)} + % + \def\pdfmakeoutlines{% + \begingroup +- % + % For XeTeX, counts of subentries are not necessary. + % Therefore, we read toc only once. + % + % We use node names as destinations. + % + % Currently we prefix the section name with the section number +- % for chapter and appendix headings only in order to avoid too much ++ % for chapter and appendix headings only in order to avoid too much + % horizontal space being required in the PDF viewer. + \def\partentry##1##2##3##4{}% ignore parts in the outlines + \def\numchapentry##1##2##3##4{% +- \dopdfoutline{##2 ##1}{1}{##3}{##4}}% ++ \dopdfoutline{##2 ##1}{1}{##3}{##4}% ++ \def\indexseclevel{2}}% + \def\numsecentry##1##2##3##4{% +- \dopdfoutline{##1}{2}{##3}{##4}}% ++ \dopdfoutline{##1}{2}{##3}{##4}% ++ \def\indexseclevel{3}}% + \def\numsubsecentry##1##2##3##4{% +- \dopdfoutline{##1}{3}{##3}{##4}}% ++ \dopdfoutline{##1}{3}{##3}{##4}% ++ \def\indexseclevel{4}}% + \def\numsubsubsecentry##1##2##3##4{% +- \dopdfoutline{##1}{4}{##3}{##4}}% ++ \dopdfoutline{##1}{4}{##3}{##4}% ++ \def\indexseclevel{5}}% ++ % ++ \def\idxinitialentry##1##2##3##4{% ++ \dopdfoutline{##1}{\indexseclevel}{idx.##1.##2}{##4}}% + % + \let\appentry\numchapentry% + \let\appsecentry\numsecentry% +@@ -1696,15 +1669,25 @@ output) for that.)} + % Therefore, the encoding and the language may not be considered. + % + \indexnofonts ++ \pdfaccentliterals ++ \ifnodeseen\else \dopdfoutlinecontents \fi % for @contents at beginning ++ % + \setupdatafile + % We can have normal brace characters in the PDF outlines, unlike + % Texinfo index files. So set that up. + \def\{{\lbracecharliteral}% + \def\}{\rbracecharliteral}% + \catcode`\\=\active \otherbackslash +- \input \tocreadfilename ++ \xetexpreauxfile ++ \input \tocreadfilename\relax ++ \xetexpostauxfile ++ \ifnodeseen \dopdfoutlinecontents \fi % for @contents at end + \endgroup + } ++ \def\dopdfoutlinecontents{% ++ \expandafter\dopdfoutline\expandafter ++ {\putwordTOC}{1}{txi.CONTENTS}{txi.CONTENTS}% ++ } + {\catcode`[=1 \catcode`]=2 + \catcode`{=\other \catcode`}=\other + \gdef\lbracecharliteral[{]% +@@ -1717,7 +1700,7 @@ output) for that.)} + % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315, + % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings. + % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753). +-% ++ % + \def\skipspaces#1{\def\PP{#1}\def\D{|}% + \ifx\PP\D\let\nextsp\relax + \else\let\nextsp\skipspaces +@@ -1732,55 +1715,17 @@ output) for that.)} + \edef\temp{#1}% + \expandafter\skipspaces\temp|\relax + } +- % make a live url in pdf output. +- \def\pdfurl#1{% +- \begingroup +- % it seems we really need yet another set of dummies; have not +- % tried to figure out what each command should do in the context +- % of @url. for now, just make @/ a no-op, that's the only one +- % people have actually reported a problem with. +- % +- \normalturnoffactive +- \def\@{@}% +- \let\/=\empty +- \makevalueexpandable +- % do we want to go so far as to use \indexnofonts instead of just +- % special-casing \var here? +- \def\var##1{##1}% +- % +- \leavevmode\setcolor{\urlcolor}% +- \special{pdf:bann << /Border [0 0 0] +- /Subtype /Link /A << /S /URI /URI (#1) >> >>}% +- \endgroup} ++ \def\pdfmakeurl#1{% ++ \special{pdf:bann << /Border [0 0 0] ++ /Subtype /Link /A << /S /URI /URI (#1) >> >>}% ++ } + \def\endlink{\setcolor{\maincolor}\special{pdf:eann}} +- \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} +- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} +- \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} +- \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} +- \def\maketoks{% +- \expandafter\poptoks\the\toksA|ENDTOKS|\relax +- \ifx\first0\adn0 +- \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 +- \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 +- \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 +- \else +- \ifnum0=\countA\else\makelink\fi +- \ifx\first.\let\next=\done\else +- \let\next=\maketoks +- \addtokens{\toksB}{\the\toksD} +- \ifx\first,\addtokens{\toksB}{\space}\fi +- \fi +- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +- \next} +- \def\makelink{\addtokens{\toksB}% +- {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} + \def\pdflink#1{\pdflinkpage{#1}{#1}}% + \def\pdflinkpage#1#2{% + \special{pdf:bann << /Border [0 0 0] + /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}% + \setcolor{\linkcolor}#2\endlink} +- \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} +-% ++ % + % + % @image support + % +@@ -1837,6 +1782,164 @@ output) for that.)} + } + \fi + ++% common definitions and code for pdftex, luatex and xetex ++\ifpdforxetex ++ % The dark red here is dark enough to print on paper as ++ % nearly black, but still distinguishable for online viewing. We use ++ % black by default, though. ++ \def\rgbDarkRed{0.50 0.09 0.12} ++ \def\rgbBlack{0 0 0} ++ % ++ % Set color, and create a mark which defines \thiscolor accordingly, ++ % so that \makeheadline knows which color to restore. ++ \def\curcolor{0 0 0}% ++ \def\setcolor#1{% ++ \ifx#1\curcolor\else ++ \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}% ++ \domark ++ \pdfsetcolor{#1}% ++ \xdef\curcolor{#1}% ++ \fi ++ } ++ % ++ \let\maincolor\rgbBlack ++ \pdfsetcolor{\maincolor} ++ \edef\thiscolor{\maincolor} ++ \def\currentcolordefs{} ++ % ++ \def\makefootline{% ++ \baselineskip24pt ++ \line{\pdfsetcolor{\maincolor}\the\footline}% ++ } ++ % ++ \def\makeheadline{% ++ \vbox to 0pt{% ++ \vskip-22.5pt ++ \line{% ++ \vbox to8.5pt{}% ++ % Extract \thiscolor definition from the marks. ++ \getcolormarks ++ % Typeset the headline with \maincolor, then restore the color. ++ \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% ++ }% ++ \vss ++ }% ++ \nointerlineskip ++ } ++ % ++ % by default, use black for everything. ++ \def\urlcolor{\rgbBlack} ++ \let\linkcolor\rgbBlack ++ % ++ % make a live url in pdf output. ++ \def\pdfurl#1{% ++ \begingroup ++ % it seems we really need yet another set of dummies; have not ++ % tried to figure out what each command should do in the context ++ % of @url. for now, just make @/ a no-op, that's the only one ++ % people have actually reported a problem with. ++ % ++ \normalturnoffactive ++ \def\@{@}% ++ \let\/=\empty ++ \makevalueexpandable ++ % do we want to go so far as to use \indexnofonts instead of just ++ % special-casing \var here? ++ \def\var##1{##1}% ++ % ++ \leavevmode\setcolor{\urlcolor}% ++ \pdfmakeurl{#1}% ++ \endgroup} ++ % ++ % \pdfgettoks - Surround page numbers in #1 with @pdflink. #1 may ++ % be a simple number, or a list of numbers in the case of an index ++ % entry. ++ \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} ++ \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} ++ \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} ++ \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} ++ \def\maketoks{% ++ \expandafter\poptoks\the\toksA|ENDTOKS|\relax ++ \ifx\first0\adn0 ++ \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 ++ \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 ++ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 ++ \else ++ \ifnum0=\countA\else\makelink\fi ++ \ifx\first.\let\next=\done\else ++ \let\next=\maketoks ++ \addtokens{\toksB}{\the\toksD} ++ \ifx\first,\addtokens{\toksB}{\space}\fi ++ \fi ++ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi ++ \next} ++ \def\makelink{\addtokens{\toksB}% ++ {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} ++ \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} ++\fi ++ ++\ifpdforxetex ++ % for pdftex. ++ {\catcode`^^cc=13 ++ \gdef\pdfaccentliteralsutfviii{% ++ % For PDF outline only. Unicode combining accents follow the ++ % character they modify. Note we need at least the first byte ++ % of the UTF-8 sequences to have an active catcode to allow the ++ % definitions to do their magic. ++ \def\"##1{##1^^cc^^88}% U+0308 ++ \def\'##1{##1^^cc^^81}% U+0301 ++ \def\,##1{##1^^cc^^a7}% U+0327 ++ \def\=##1{##1^^cc^^85}% U+0305 ++ \def\^##1{##1^^cc^^82}% U+0302 ++ \def\`##1{##1^^cc^^80}% U+0300 ++ \def\~##1{##1^^cc^^83}% U+0303 ++ \def\dotaccent##1{##1^^cc^^87}% U+0307 ++ \def\H##1{##1^^cc^^8b}% U+030B ++ \def\ogonek##1{##1^^cc^^a8}% U+0328 ++ \def\ringaccent##1{##1^^cc^^8a}% U+030A ++ \def\u##1{##1^^cc^^8c}% U+0306 ++ \def\ubaraccent##1{##1^^cc^^b1}% U+0331 ++ \def\udotaccent##1{##1^^cc^^a3}% U+0323 ++ \def\v##1{##1^^cc^^8c}% U+030C ++ % this definition of @tieaccent will only work with exactly two characters ++ % in argument as we need to insert the combining character between them. ++ \def\tieaccent##1{\tieaccentz##1}% ++ \def\tieaccentz##1##2{##1^^cd^^a1##2} % U+0361 ++ }}% ++ % ++ % for xetex and luatex, which both support extended ^^^^ escapes and ++ % process the Unicode codepoint as a single token. ++ \gdef\pdfaccentliteralsnative{% ++ \def\"##1{##1^^^^0308}% ++ \def\'##1{##1^^^^0301}% ++ \def\,##1{##1^^^^0327}% ++ \def\=##1{##1^^^^0305}% ++ \def\^##1{##1^^^^0302}% ++ \def\`##1{##1^^^^0300}% ++ \def\~##1{##1^^^^0303}% ++ \def\dotaccent##1{##1^^^^0307}% ++ \def\H##1{##1^^^^030b}% ++ \def\ogonek##1{##1^^^^0328}% ++ \def\ringaccent##1{##1^^^^030a}% ++ \def\u##1{##1^^^^0306}% ++ \def\ubaraccent##1{##1^^^^0331}% ++ \def\udotaccent##1{##1^^^^0323}% ++ \def\v##1{##1^^^^030c}% ++ \def\tieaccent##1{\tieaccentz##1}% ++ \def\tieaccentz##1##2{##1^^^^0361##2} % U+0361 ++ }% ++ % ++ % use the appropriate definition ++ \ifluatex ++ \let\pdfaccentliterals\pdfaccentliteralsnative ++ \else ++ \ifxetex ++ \let\pdfaccentliterals\pdfaccentliteralsnative ++ \else ++ \let\pdfaccentliterals\pdfaccentliteralsutfviii ++ \fi ++ \fi ++\fi + + % + \message{fonts,} +@@ -2697,7 +2800,7 @@ end + } + + % Commands to set the quote options. +-% ++% + \parseargdef\codequoteundirected{% + \def\temp{#1}% + \ifx\temp\onword +@@ -2743,7 +2846,7 @@ end + % If we are in a monospaced environment, however, 1) always use \ttsl, + % and 2) do not add an italic correction. + \def\dosmartslant#1#2{% +- \ifusingtt ++ \ifusingtt + {{\ttsl #2}\let\next=\relax}% + {\def\next{{#1#2}\smartitaliccorrection}}% + \next +@@ -2768,15 +2871,15 @@ end + % @cite unconditionally uses \sl with \smartitaliccorrection. + \def\cite#1{{\sl #1}\smartitaliccorrection} + +-% @var unconditionally uses \sl. This gives consistency for +-% parameter names whether they are in @def, @table @code or a +-% regular paragraph. +-% To get ttsl font for @var when used in code context, @set txicodevaristt. +-% The \null is to reset \spacefactor. ++% By default, use ttsl font for @var when used in code context. ++% To unconditionally use \sl for @var, @clear txicodevaristt. This ++% gives consistency for parameter names whether they are in @def, ++% @table @code or a regular paragraph. + \def\aftersmartic{} + \def\var#1{% + \let\saveaftersmartic = \aftersmartic + \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% ++ % The \null is to reset \spacefactor. + % + \ifflagclear{txicodevaristt}% + {\def\varnext{{{\sl #1}}\smartitaliccorrection}}% +@@ -2784,7 +2887,6 @@ end + \varnext + } + +-% To be removed after next release + \def\SETtxicodevaristt{}% @set txicodevaristt + + \let\i=\smartitalic +@@ -2804,7 +2906,7 @@ end + \def\ii#1{{\it #1}} % italic font + + % @b, explicit bold. Also @strong. +-\def\b#1{{\bf #1}} ++\def\b#1{{\bf \defcharsdefault #1}} + \let\strong=\b + + % @sansserif, explicit sans. +@@ -2922,7 +3024,7 @@ end + \gdef\codedash{\futurelet\next\codedashfinish} + \gdef\codedashfinish{% + \normaldash % always output the dash character itself. +- % ++ % + % Now, output a discretionary to allow a line break, unless + % (a) the next character is a -, or + % (b) the preceding character is a -, or +@@ -3028,25 +3130,25 @@ end + % For pdfTeX and LuaTeX + \ifurefurlonlylink + % PDF plus option to not display url, show just arg +- \unhbox0 ++ \unhbox0 + \else + % PDF, normally display both arg and url for consistency, + % visibility, if the pdf is eventually used to print, etc. + \unhbox0\ (\urefcode{#1})% + \fi + \else +- \ifx\XeTeXrevision\thisisundefined +- \unhbox0\ (\urefcode{#1})% DVI, always show arg and url +- \else ++ \ifxetex + % For XeTeX + \ifurefurlonlylink + % PDF plus option to not display url, show just arg +- \unhbox0 ++ \unhbox0 + \else + % PDF, normally display both arg and url for consistency, + % visibility, if the pdf is eventually used to print, etc. + \unhbox0\ (\urefcode{#1})% + \fi ++ \else ++ \unhbox0\ (\urefcode{#1})% DVI, always show arg and url + \fi + \fi + \else +@@ -3099,10 +3201,10 @@ end + } + } + +-% By default we'll break after the special characters, but some people like to +-% break before the special chars, so allow that. Also allow no breaking at ++% By default we'll break after the special characters, but some people like to ++% break before the special chars, so allow that. Also allow no breaking at + % all, for manual control. +-% ++% + \parseargdef\urefbreakstyle{% + \def\txiarg{#1}% + \ifx\txiarg\wordnone +@@ -3121,16 +3223,17 @@ end + \def\wordnone{none} + + % Allow a ragged right output to aid breaking long URL's. There can +-% be a break at the \allowbreak with no extra glue (if the existing stretch in ++% be a break at the \allowbreak with no extra glue (if the existing stretch in + % the line is sufficient), a break at the \penalty with extra glue added + % at the end of the line, or no break at all here. +-% Changing the value of the penalty and/or the amount of stretch affects how ++% Changing the value of the penalty and/or the amount of stretch affects how + % preferable one choice is over the other. ++% Check test cases in doc/texinfo-tex-test.texi before making any changes. + \def\urefallowbreak{% + \penalty0\relax +- \hskip 0pt plus 2 em\relax ++ \hskip 0pt plus 3 em\relax + \penalty1000\relax +- \hskip 0pt plus -2 em\relax ++ \hskip 0pt plus -3 em\relax + } + + \urefbreakstyle after +@@ -3339,7 +3442,7 @@ $$% + % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. + % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, + % except specified as a normal braced arg, so no newlines to worry about. +-% ++% + \def\outfmtnametex{tex} + % + \long\def\inlinefmt#1{\doinlinefmt #1,\finish} +@@ -3347,7 +3450,7 @@ $$% + \def\inlinefmtname{#1}% + \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi + } +-% ++% + % @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if + % FMTNAME is tex, else ELSE-TEXT. + \long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish} +@@ -3363,7 +3466,7 @@ $$% + % *right* brace they would have to use a command anyway, so they may as + % well use a command to get a left brace too. We could re-use the + % delimiter character idea from \verb, but it seems like overkill. +-% ++% + \long\def\inlineraw{\tex \doinlineraw} + \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} + \def\doinlinerawtwo#1,#2,\finish{% +@@ -3649,7 +3752,7 @@ $$% + % for non-CM glyphs. That is ec* for regular text and tc* for the text + % companion symbols (LaTeX TS1 encoding). Both are part of the ec + % package and follow the same conventions. +-% ++% + \def\ecfont{\etcfont{e}} + \def\tcfont{\etcfont{t}} + % +@@ -3665,15 +3768,24 @@ $$% + {\font\thisecfont = #1ctt\ecsize \space at \nominalsize}% + % else + {\ifx\curfontstyle\bfstylename +- % bold: +- \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize ++ \etcfontbold{#1}% + \else +- % regular: +- \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize ++ \ifrmisbold ++ \etcfontbold{#1}% ++ \else ++ % regular: ++ \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space ++ at \nominalsize ++ \fi + \fi}% + \thisecfont + } + ++\def\etcfontbold#1{% ++ % bold: ++ \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize ++} ++ + % @registeredsymbol - R in a circle. The font for the R should really + % be smaller yet, but lllsize is the best we can do for now. + % Adapted from the plain.tex definition of \copyright. +@@ -3731,7 +3843,7 @@ $$% + after the title page.}}% + \def\setshortcontentsaftertitlepage{% + \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo +- command; move your @shortcontents and @contents commands if you ++ command; move your @shortcontents and @contents commands if you + want the contents after the title page.}}% + + \parseargdef\shorttitlepage{% +@@ -3776,7 +3888,8 @@ $$% + } + + \def\finishtitlepage{% +- \vskip4pt \hrule height 2pt width \hsize ++ \ifseenauthor \vskip4pt \else \vskip 0pt plus 1filll \fi ++ \hrule height 2pt width \hsize + \vskip\titlepagebottomglue + \finishedtitlepagetrue + } +@@ -3785,7 +3898,7 @@ $$% + % don't worry much about spacing, ragged right. This should be used + % inside a \vbox, and fonts need to be set appropriately first. \par should + % be specified before the end of the \vbox, since a vbox is a group. +-% ++% + \def\raggedtitlesettings{% + \rm + \hyphenpenalty=10000 +@@ -3799,33 +3912,105 @@ $$% + \let\subtitlerm=\rmfont + \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} + ++\let\savedtitle\empty ++\let\savedsubtitlegroup\empty ++\let\savedauthorgroup\empty ++ + \parseargdef\title{% +- \checkenv\titlepage +- \vbox{\titlefonts \raggedtitlesettings #1\par}% +- % print a rule at the page bottom also. +- \finishedtitlepagefalse +- \vskip4pt \hrule height 4pt width \hsize \vskip4pt ++ \expandafter\ifx\thisenv\documentinfo ++ \gdef\savedtitle{#1}% ++ \else ++ \checkenv\titlepage ++ \vbox{\titlefonts \raggedtitlesettings #1\par}% ++ % print a rule at the page bottom also. ++ \finishedtitlepagefalse ++ \vskip4pt \hrule height 4pt width \hsize \vskip4pt ++ \fi + } + + \parseargdef\subtitle{% +- \checkenv\titlepage +- {\subtitlefont \rightline{#1}}% ++ \expandafter\ifx\thisenv\documentinfo ++ \ifx\savedsubtitlegroup\empty ++ \gdef\savedsubtitlegroup{\savedsubtitle{#1}}% ++ \else ++ \expandafter\gdef\expandafter\savedsubtitlegroup\expandafter{% ++ \savedsubtitlegroup\savedsubtitle{#1}}% ++ \fi ++ \else ++ \checkenv\titlepage ++ {\subtitlefont \rightline{#1}}% ++ \fi + } + + % @author should come last, but may come many times. + % It can also be used inside @quotation. + % + \parseargdef\author{% +- \def\temp{\quotation}% +- \ifx\thisenv\temp +- \def\quotationauthor{#1}% printed in \Equotation. ++ \expandafter\ifx\thisenv\documentinfo ++ \ifx\savedauthorgroup\empty ++ \gdef\savedauthorgroup{\savedauthor{#1}}% ++ \else ++ \expandafter\gdef\expandafter\savedauthorgroup\expandafter{% ++ \savedauthorgroup\savedauthor{#1}}% ++ \fi + \else +- \checkenv\titlepage +- \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi +- {\secfonts\rm \leftline{#1}}% ++ \def\temp{\quotation}% ++ \ifx\thisenv\temp ++ \def\quotationauthor{#1}% printed in \Equotation. ++ \else ++ \checkenv\titlepage ++ \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi ++ {\secfonts\rm \leftline{#1}}% ++ \fi + \fi + } + ++% @maketitle ++{\obeylines ++\gdef\maketitle{% ++\titlepage ++\ifx\savedtitle\empty\else ++ \title \savedtitle ++ \ifx\savedsubtitlegroup\empty\else ++ \savedsubtitlegroup ++\fi\fi ++\ifx\savedauthorgroup\empty\else ++ \savedauthorgroup ++\fi ++% start verso page if either copying or publication text is given ++\ifx\copyingtext\relax ++ \ifx\publicationtext\relax\else ++ \page \vskip 0pt plus 1filll ++ \fi ++\else ++ \page \vskip 0pt plus 1filll ++\fi ++\ifx\publicationtext\relax\else ++ \insertpublication ++ \sp 1 ++\fi ++\ifx\copyingtext\relax\else ++ \insertcopying ++\fi ++\end titlepage ++} ++ ++% \savedauthor{#1}, called with braces. output an @author line. ++\gdef\savedauthor#1{% ++\author#1 ++} ++ ++% \savedsubtitle{#1}, called with braces. output a @subtitle line. ++\gdef\savedsubtitle#1{% ++\subtitle#1 ++} ++} % \obeylines ++ ++% @documentinfo block ++\envdef\documentinfo{% ++} ++\def\Edocumentinfo{}% ++ + + % Set up page headings and footings. + +@@ -4611,7 +4796,7 @@ $$% + % Like \expandablevalue, but completely expandable (the \message in the + % definition above operates at the execution level of TeX). Used when + % writing to auxiliary files, due to the expansion that \write does. +-% If flag is undefined, pass through an unexpanded @value command: maybe it ++% If flag is undefined, pass through an unexpanded @value command: maybe it + % will be set by the time it is read back in. + % + % NB flag names containing - or _ may not work here. +@@ -4635,7 +4820,7 @@ $$% + + % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined + % with @set. +-% ++% + % To get the special treatment we need for `@end ifset,' we call + % \makecond and then redefine. + % +@@ -4668,7 +4853,7 @@ $$% + % without the @) is in fact defined. We can only feasibly check at the + % TeX level, so something like `mathcode' is going to considered + % defined even though it is not a Texinfo command. +-% ++% + \makecond{ifcommanddefined} + \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} + % +@@ -4774,7 +4959,7 @@ $$% + \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} + \def\docodeindexxxx #1{\docind{\indexname}{#1}} + +- ++ + % \definedummyword defines \#1 as \string\#1\space, thus effectively + % preventing its expansion. This is used only for control words, + % not control letters, because the \space would be incorrect for +@@ -4791,7 +4976,7 @@ $$% + \def\definedummyword #1{\def#1{\string#1\space}}% + \def\definedummyletter#1{\def#1{\string#1}}% + +-% Used for the aux, toc and index files to prevent expansion of Texinfo ++% Used for the aux, toc and index files to prevent expansion of Texinfo + % commands. Most of the commands are controlled through the + % \ifdummies conditional. + % +@@ -5065,8 +5250,8 @@ $$% + % + \uccode`\1=`\{ \uppercase{\def\{{1}}% + \uccode`\1=`\} \uppercase{\def\}{1}}% +- \let\lbracechar\{% +- \let\rbracechar\}% ++ \def\lbracechar##1{\{}% ++ \def\rbracechar##1{\}}% + % + % + % We need to get rid of all macros, leaving only the arguments (if present). +@@ -5081,7 +5266,7 @@ $$% + \let\value\indexnofontsvalue + } + +- ++ + + + % #1 is the index name, #2 is the entry text. +@@ -5122,7 +5307,7 @@ $$% + \ifx\suffix\indexisfl\def\suffix{f1}\fi + % Open the file + \immediate\openout\csname#1indfile\endcsname \jobname.\suffix +- % Using \immediate above here prevents an object entering into the current ++ % Using \immediate above here prevents an object entering into the current + % box, which could confound checks such as those in \safewhatsit for + % preceding skips. + \typeout{Writing index file \jobname.\suffix}% +@@ -5174,7 +5359,7 @@ $$% + \ifx\segment\isfinish + \else + % +- % Fully expand the segment, throwing away any @sortas directives, and ++ % Fully expand the segment, throwing away any @sortas directives, and + % trim spaces. + \edef\trimmed{\segment}% + \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}% +@@ -5266,7 +5451,7 @@ $$% + \def\}{\rbracechar{}}% + \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}% + % +- % Split the entry into primary entry and any subentries, and get the index ++ % Split the entry into primary entry and any subentries, and get the index + % sort key. + \splitindexentry\indextext + % +@@ -5411,6 +5596,8 @@ $$% + \tolerance = 9500 + \plainfrenchspacing + \everypar = {}% don't want the \kern\-parindent from indentation suppression. ++ \let\entry\indexentry ++ \ifxetex\xetexpreauxfile\fi + % + % See comment in \requireopenindexfile. + \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi +@@ -5436,8 +5623,12 @@ $$% + \fi + \fi + \closein 1 ++ \ifxetex\xetexpostauxfile\fi + \endgroup} + ++% Checked in @bye ++\let\byeerror\relax ++ + % If the index file starts with a backslash, forgo reading the index + % file altogether. If somebody upgrades texinfo.tex they may still have + % old index files using \ as the escape character. Reading this would +@@ -5446,19 +5637,21 @@ $$% + \ifflagclear{txiindexescapeisbackslash}{% + \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1 + \ifflagclear{txiskipindexfileswithbackslash}{% +-\errmessage{% +-ERROR: A sorted index file in an obsolete format was skipped. ++ % Delay the error message until the very end to give a chance ++ % for the whole index to be output as input for texindex. ++ \global\def\byeerror{% ++ERROR: A sorted index file in an obsolete format was skipped. + To fix this problem, please upgrade your version of 'texi2dvi' + or 'texi2pdf' to that at . +-If you are using an old version of 'texindex' (part of the Texinfo ++If you are using an old version of 'texindex' (part of the Texinfo + distribution), you may also need to upgrade to a newer version (at least 6.0). + You may be able to typeset the index if you run + 'texindex \jobname.\indexname' yourself. +-You could also try setting the 'txiindexescapeisbackslash' flag by ++You could also try setting the 'txiindexescapeisbackslash' flag by + running a command like +-'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do ++'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'. If you do + this, Texinfo will try to use index files in the old format. +-If you continue to have problems, deleting the index files and starting again ++If you continue to have problems, deleting the index files and starting again + might help (with 'rm \jobname.?? \jobname.??s')% + }% + }{% +@@ -5466,7 +5659,9 @@ might help (with 'rm \jobname.?? \jobnam + }% + \else + \begindoublecolumns ++ \ifxetex\xetexpreauxfile\fi + \input \jobname.\indexname s ++ \ifxetex\xetexpostauxfile\fi + \enddoublecolumns + \fi + }{% +@@ -5477,11 +5672,39 @@ might help (with 'rm \jobname.?? \jobnam + % should work because we (hopefully) don't otherwise use @ in index files. + %\catcode`\@=12\relax + \catcode`\@=0\relax ++ \ifxetex\xetexpreauxfile\fi + \input \jobname.\indexname s ++ \ifxetex\xetexpostauxfile\fi + \enddoublecolumns + }% + } + ++\def\indexentry#1#2{% ++ \let\entrypagetarget\empty ++ \ifpdforxetex ++ % only link the index text to the page if no comma appears in the ++ % list of pages, i.e. there is only one page ++ \checkpagelistcomma{#2}\pagelistcomma ++ \expandafter\ifcase\pagelistcomma ++ \def\entrypagetarget{#2}% ++ \fi ++ \fi% ++ \entryinternal{#1}{#2}% ++} ++ ++\def\checkpagelistcomma#1#2{% ++ \checkpagelistcommaxx#2#1,\finish ++} ++\def\checkpagelistcommaxx#1#2,#3\finish{% ++ \def\tmp{#3}% ++ \ifx\tmp\empty ++ \def#1{0\relax} ++ \else ++ \def#1{1\relax} ++ \fi ++} ++ ++ + % These macros are used by the sorted index file itself. + % Change them to control the appearance of the index. + +@@ -5518,7 +5741,6 @@ might help (with 'rm \jobname.?? \jobnam + + \def\initial{% + \bgroup +- \initialglyphs + \initialx + } + +@@ -5531,7 +5753,7 @@ might help (with 'rm \jobname.?? \jobnam + % bottom of a column to reduce an increase in inter-line spacing. + \nobreak + \vskip 0pt plus 5\baselineskip +- \penalty -300 ++ \penalty -300 + \vskip 0pt plus -5\baselineskip + % + % Typeset the initial. Making this add up to a whole number of +@@ -5541,7 +5763,10 @@ might help (with 'rm \jobname.?? \jobnam + % + % No shrink because it confuses \balancecolumns. + \vskip 1.67\baselineskip plus 1\baselineskip +- \leftline{\secfonts \kern-0.05em \secbf #1}% ++ \doindexinitialentry{#1}% ++ \initialglyphs ++ \leftline{% ++ \secfonts \kern-0.05em \secbf #1}% + % \secfonts is inside the argument of \leftline so that the change of + % \baselineskip will not affect any glue inserted before the vbox that + % \leftline creates. +@@ -5551,6 +5776,28 @@ might help (with 'rm \jobname.?? \jobnam + \egroup % \initialglyphs + } + ++\def\doindexinitialentry#1{% ++ \ifpdforxetex ++ \global\advance\idxinitialno by 1 ++ \def\indexlbrace{\{}% ++ \def\indexrbrace{\}}% ++ \def\indexbackslash{\realbackslash}% ++ \def\indexatchar{\@}% ++ \writetocentry{idxinitial}{\asis #1}{IDX\the\idxinitialno}% ++ % The @asis removes a pair of braces around e.g. {@indexatchar} that ++ % are output by texindex. ++ % ++ \pdfmkdest{idx.\asis #1.IDX\the\idxinitialno}% ++ \fi ++} ++ ++% No listing in TOC ++\def\idxinitialentry#1#2#3#4{} ++ ++% For index initials. ++\newcount\idxinitialno \idxinitialno=1 ++ ++ + \newdimen\entryrightmargin + \entryrightmargin=0pt + +@@ -5559,16 +5806,18 @@ might help (with 'rm \jobname.?? \jobnam + \newdimen\entrycontskip + \entrycontskip=1em + +-% for PDF output, whether to make the text of the entry a link to the page +-% number. set for @contents and @shortcontents where there is only one +-% page number. ++% for PDF output, whether to make the text of the entry a link to the section. ++% set for @contents and @shortcontents. + \newif\iflinkentrytext + +-% \entry typesets a paragraph consisting of the text (#1), dot leaders, and +-% then page number (#2) flushed to the right margin. It is used for index +-% and table of contents entries. The paragraph is indented by \leftskip. +-% +-\def\entry{% ++% \entryinternal typesets a paragraph consisting of the text (#1), dot ++% leaders, and then page number (#2) flushed to the right margin. It is ++% used for index and table of contents entries. The paragraph is indented ++% by \leftskip. ++% For PDF output, if \linkentrytexttrue and \tocnodetarget is set, link text ++% to the referenced node. Else if \entrypagetarget is set, link text to the ++% page. ++\def\entryinternal{% + \begingroup + % + % Start a new paragraph if necessary, so our assignments below can't +@@ -5608,9 +5857,19 @@ might help (with 'rm \jobname.?? \jobnam + \global\setbox\boxA=\hbox\bgroup + \ifpdforxetex + \iflinkentrytext +- \pdflinkpage{#1}{\unhbox\boxA}% ++ \ifx\tocnodetarget\empty ++ \unhbox\boxA ++ \else ++ \startxreflink{\tocnodetarget}{}% ++ \unhbox\boxA ++ \endlink ++ \fi + \else +- \unhbox\boxA ++ \ifx\entrypagetarget\empty ++ \unhbox\boxA ++ \else ++ \pdflinkpage{\entrypagetarget}{\unhbox\boxA}% ++ \fi + \fi + \else + \unhbox\boxA +@@ -5625,11 +5884,18 @@ might help (with 'rm \jobname.?? \jobnam + % + \null\nobreak\indexdotfill % Have leaders before the page number. + % ++ \hskip\skip\thinshrinkable + \ifpdforxetex +- \pdfgettoks#1.% +- \hskip\skip\thinshrinkable\the\toksA ++ \ifx\tocnodetarget\empty ++ \pdfgettoks#1.% ++ \the\toksA ++ \else ++ % Should just be a single page number in toc ++ \startxreflink{\tocnodetarget}{}% ++ #1\endlink ++ \fi + \else +- \hskip\skip\thinshrinkable #1% ++ #1% + \fi + \fi + \egroup % end \boxA +@@ -5851,7 +6117,7 @@ might help (with 'rm \jobname.?? \jobnam + \newbox\balancedcolumns + \setbox\balancedcolumns=\vbox{shouldnt see this}% + % +-% Only called for the last of the double column material. \doublecolumnout ++% Only called for the last of the double column material. \doublecolumnout + % does the others. + \def\balancecolumns{% + \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120. +@@ -5879,7 +6145,7 @@ might help (with 'rm \jobname.?? \jobnam + }% + % Now the left column is in box 1, and the right column in box 3. + % +- % Check whether the left column has come out higher than the page itself. ++ % Check whether the left column has come out higher than the page itself. + % (Note that we have doubled \vsize for the double columns, so + % the actual height of the page is 0.5\vsize). + \ifdim2\ht1>\vsize +@@ -6175,7 +6441,7 @@ might help (with 'rm \jobname.?? \jobnam + \let\top\unnumbered + + % Sections. +-% ++% + \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz + \def\seczzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 +@@ -6198,7 +6464,7 @@ might help (with 'rm \jobname.?? \jobnam + } + + % Subsections. +-% ++% + % normally calls numberedsubseczzz: + \outer\parseargdef\numberedsubsec{\numhead2{#1}} + \def\numberedsubseczzz#1{% +@@ -6222,7 +6488,7 @@ might help (with 'rm \jobname.?? \jobnam + } + + % Subsubsections. +-% ++% + % normally numberedsubsubseczzz: + \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} + \def\numberedsubsubseczzz#1{% +@@ -6275,6 +6541,10 @@ might help (with 'rm \jobname.?? \jobnam + \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} + ++% @xrefname - give text with printed name for linking to node and allow ++% referencing node, but do not print any heading. ++\parseargdef\xrefname{\donoderef{Yomitfromtoc}{#1}}% ++ + % These macros generate a chapter, section, etc. heading only + % (including whitespace, linebreaking, etc. around it), + % given all the information in convenient, parsed form. +@@ -6396,11 +6666,6 @@ might help (with 'rm \jobname.?? \jobnam + \chapfonts \rm + \let\footnote=\errfootnoteheading % give better error message + % +- % Have to define \currentsection before calling \donoderef, because the +- % xref code eventually uses it. On the other hand, it has to be called +- % after \pchapsepmacro, or the headline will change too soon. +- \gdef\currentsection{#1}% +- % + % Only insert the separating space if we have a chapter/appendix + % number, and don't print the unnumbered ``number''. + \ifx\temptype\Ynothingkeyword +@@ -6427,7 +6692,7 @@ might help (with 'rm \jobname.?? \jobnam + % been typeset. If the destination for the pdf outline is after the + % text, then jumping from the outline may wind up with the text not + % being visible, for instance under high magnification. +- \donoderef{#2}% ++ \donoderef{#2}{#1}% + % + % Typeset the actual heading. + \nobreak % Avoid page breaks at the interline glue. +@@ -6543,21 +6808,17 @@ might help (with 'rm \jobname.?? \jobnam + \ifx\temptype\Ynothingkeyword + \setbox0 = \hbox{}% + \def\toctype{unn}% +- \gdef\currentsection{#1}% + \else\ifx\temptype\Yomitfromtockeyword +- % for @headings -- no section number, don't include in toc, +- % and don't redefine \currentsection. ++ % for @headings -- no section number, don't include in toc. + \setbox0 = \hbox{}% + \def\toctype{omit}% + \let\sectionlevel=\empty + \else\ifx\temptype\Yappendixkeyword + \setbox0 = \hbox{#4\enspace}% + \def\toctype{app}% +- \gdef\currentsection{#1}% + \else + \setbox0 = \hbox{#4\enspace}% + \def\toctype{num}% +- \gdef\currentsection{#1}% + \fi\fi\fi + % + % Write the toc entry (before \donoderef). See comments in \chapmacro. +@@ -6565,7 +6826,7 @@ might help (with 'rm \jobname.?? \jobnam + % + % Write the node reference (= pdf destination for pdftex). + % Again, see comments in \chapmacro. +- \donoderef{#3}% ++ \donoderef{#3}{#1}% + % + % Interline glue will be inserted when the vbox is completed. + % That glue will be a valid breakpoint for the page, since it'll be +@@ -6759,12 +7020,13 @@ might help (with 'rm \jobname.?? \jobnam + + % Prepare to read what we've written to \tocfile. + % +-\def\startcontents#1{% ++\def\startcontents#1#2{% + % If @setchapternewpage on, and @headings double, the contents should + % start on an odd page, unlike chapters. + \contentsalignmacro + \immediate\closeout\tocfile + % ++ #2% + % Don't need to put `Contents' or `Short Contents' in the headline. + % It is abundantly clear what they are. + \chapmacro{#1}{Yomitfromtoc}{}% +@@ -6784,7 +7046,7 @@ might help (with 'rm \jobname.?? \jobnam + + % \raggedbottom in plain.tex hardcodes \topskip so override it + \catcode`\@=11 +-\def\raggedbottom{\advance\topskip by 0pt plus60pt \r@ggedbottomtrue} ++\def\raggedbottom{\advance\topskip by 0pt plus30pt \r@ggedbottomtrue} + \catcode`\@=\other + + % redefined for the two-volume lispref. We always output on +@@ -6795,7 +7057,9 @@ might help (with 'rm \jobname.?? \jobnam + % Normal (long) toc. + % + \def\contents{% +- \startcontents{\putwordTOC}% ++ \startcontents{\putwordTOC}{\contentsmkdest}% ++ \ifxetex\xetexpreauxfile\fi ++ \penalty2 % mark beginning of contents + \openin 1 \tocreadfilename\space + \ifeof 1 \else + \findsecnowidths +@@ -6807,13 +7071,18 @@ might help (with 'rm \jobname.?? \jobnam + \pdfmakeoutlines + \fi + \closein 1 ++ \ifxetex\xetexpostauxfile\fi + \endgroup + \contentsendroman + } + ++\def\contentsmkdest{% ++ \pdfmkdest{txi.CONTENTS}% ++} ++ + % And just the chapters. + \def\summarycontents{% +- \startcontents{\putwordShortTOC}% ++ \startcontents{\putwordShortTOC}{}% + % + \let\partentry = \shortpartentry + \let\numchapentry = \shortchapentry +@@ -6836,11 +7105,13 @@ might help (with 'rm \jobname.?? \jobnam + \let\numsubsubsecentry = \numsecentry + \let\appsubsubsecentry = \numsecentry + \let\unnsubsubsecentry = \numsecentry ++ \ifxetex\xetexpreauxfile\fi + \openin 1 \tocreadfilename\space + \ifeof 1 \else + \readtocfile + \fi + \closein 1 ++ \ifxetex\xetexpostauxfile\fi + \vfill \eject + \contentsalignmacro % in case @setchapternewpage odd is in effect + \endgroup +@@ -6881,36 +7152,45 @@ might help (with 'rm \jobname.?? \jobnam + % #3 - level of section (e.g "chap", "sec") + % #4 - page number + +-% Parts, in the main contents. Replace the part number, which doesn't +-% exist, with an empty box. Let's hope all the numbers have the same width. +-% Also ignore the page number, which is conventionally not printed. +-\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} ++% Parts, in the main contents. Ignore the page number, which is ++% conventionally not printed. + \def\partentry#1#2#3#4{% ++ \ifnum\lastpenalty = 2 ++ % use less space if at very first entry of contents ++ \vskip 1\baselineskip plus .33\baselineskip minus .25\baselineskip ++ \else ++ \vskip 2\baselineskip plus .66\baselineskip minus .5\baselineskip ++ \fi + % Add stretch and a bonus for breaking the page before the part heading. + % This reduces the chance of the page being broken immediately after the + % part heading, before a following chapter heading. +- \vskip 0pt plus 5\baselineskip ++ \vskip 0pt plus 3\baselineskip + \penalty-300 +- \vskip 0pt plus -5\baselineskip +- \dochapentry{#1}{\numeralbox}{}% ++ \vskip 0pt plus -3\baselineskip ++ \begingroup ++ \secfonts \rm ++ \entryinternal{#1}{}% ++ \endgroup ++ \afterpartentrytrue + } ++\newif\ifafterpartentry + % + % Parts, in the short toc. + \def\shortpartentry#1#2#3#4{% + \penalty-300 + \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip +- \shortchapentry{{\bf #1}}{\numeralbox}{}{}% ++ \tocentry{{\bf #1}}{}{}{}% + } + + % Chapters, in the main contents. + \def\numchapentry#1#2#3#4{% + \retrievesecnowidth\secnowidthchap{#2}% +- \dochapentry{#1}{#2}{#4}% ++ \dochapentry{#1}{#2}{#3}{#4}% + } + + % Chapters, in the short toc. + \def\shortchapentry#1#2#3#4{% +- \tocentry{#1}{\shortchaplabel{#2}}{#4}% ++ \tocentry{#1}{\shortchaplabel{#2}}{#3}{#4}% + } + + % Appendices, in the main contents. +@@ -6923,79 +7203,83 @@ might help (with 'rm \jobname.?? \jobnam + % + \def\appentry#1#2#3#4{% + \retrievesecnowidth\secnowidthchap{#2}% +- \dochapentry{\appendixbox{#2}\hskip.7em#1}{}{#4}% ++ \dochapentry{\appendixbox{#2}\hskip.7em#1}{}{#3}{#4}% + } + + % Unnumbered chapters. +-\def\unnchapentry#1#2#3#4{\dochapentry{#1}{}{#4}} +-\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{}{#4}} ++\def\unnchapentry#1#2#3#4{\dochapentry{#1}{}{#3}{#4}} ++\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{}{#3}{#4}} + + % Sections. +-\def\numsecentry#1#2#3#4{\dosecentry{#1}{#2}{#4}} +- + \def\numsecentry#1#2#3#4{% + \retrievesecnowidth\secnowidthsec{#2}% +- \dosecentry{#1}{#2}{#4}% ++ \dosecentry{#1}{#2}{#3}{#4}% + } + \let\appsecentry=\numsecentry + \def\unnsecentry#1#2#3#4{% + \retrievesecnowidth\secnowidthsec{#2}% +- \dosecentry{#1}{}{#4}% ++ \dosecentry{#1}{}{#3}{#4}% + } + + % Subsections. + \def\numsubsecentry#1#2#3#4{% + \retrievesecnowidth\secnowidthssec{#2}% +- \dosubsecentry{#1}{#2}{#4}% ++ \dosubsecentry{#1}{#2}{#3}{#4}% + } + \let\appsubsecentry=\numsubsecentry + \def\unnsubsecentry#1#2#3#4{% + \retrievesecnowidth\secnowidthssec{#2}% +- \dosubsecentry{#1}{}{#4}% ++ \dosubsecentry{#1}{}{#3}{#4}% + } + + % And subsubsections. +-\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#2}{#4}} ++\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#2}{#3}{#4}} + \let\appsubsubsecentry=\numsubsubsecentry +-\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{}{#4}} ++\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{}{#3}{#4}} + + % This parameter controls the indentation of the various levels. + % Same as \defaultparindent. + \newdimen\tocindent \tocindent = 15pt + + % Now for the actual typesetting. In all these, #1 is the text, #2 is +-% a section number if present, and #3 is the page number. ++% a section number if present, #3 is the node, and #4 is the page number. + % + % If the toc has to be broken over pages, we want it to be at chapters + % if at all possible; hence the \penalty. +-\def\dochapentry#1#2#3{% +- \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip ++\def\dochapentry#1#2#3#4{% ++ \ifafterpartentry ++ \afterpartentryfalse ++ \penalty5000 ++ \else ++ \penalty-300 ++ \fi ++ \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip + \begingroup + % Move the page numbers slightly to the right + \advance\entryrightmargin by -0.05em + \chapentryfonts + \extrasecnoskip=0.4em % separate chapter number more +- \tocentry{#1}{#2}{#3}% ++ \tocentry{#1}{#2}{#3}{#4}% + \endgroup + \nobreak\vskip .25\baselineskip plus.1\baselineskip + } + +-\def\dosecentry#1#2#3{\begingroup ++\def\dosecentry#1#2#3#4{\begingroup + \secnowidth=\secnowidthchap + \secentryfonts \leftskip=\tocindent +- \tocentry{#1}{#2}{#3}% ++ \tocentry{#1}{#2}{#3}{#4}% + \endgroup} + +-\def\dosubsecentry#1#2#3{\begingroup ++\def\dosubsecentry#1#2#3#4{\begingroup + \secnowidth=\secnowidthsec + \subsecentryfonts \leftskip=2\tocindent +- \tocentry{#1}{#2}{#3}% ++ \tocentry{#1}{#2}{#3}{#4}% + \endgroup} + +-\def\dosubsubsecentry#1#2#3{\begingroup ++\def\dosubsubsecentry#1#2#3#4{\begingroup + \secnowidth=\secnowidthssec + \subsubsecentryfonts \leftskip=3\tocindent +- \tocentry{#1}{#2}{#3}% ++ \tocentry{#1}{#2}{#3}{#4}% + \endgroup} + + % Used for the maximum width of a section number so we can align +@@ -7005,12 +7289,16 @@ might help (with 'rm \jobname.?? \jobnam + \newdimen\extrasecnoskip + \extrasecnoskip=0pt + +-% \tocentry{TITLE}{SEC NO}{PAGE} ++\let\tocnodetarget\empty ++\let\entrypagetarget\empty ++ ++% \tocentry{TITLE}{SEC NO}{NODE}{PAGE} + % +-\def\tocentry#1#2#3{% ++\def\tocentry#1#2#3#4{% ++ \def\tocnodetarget{#3}% + \def\secno{#2}% + \ifx\empty\secno +- \entry{#1}{#3}% ++ \entryinternal{#1}{#4}% + \else + \ifdim 0pt=\secnowidth + \setbox0=\hbox{#2\hskip\labelspace\hskip\extrasecnoskip}% +@@ -7021,7 +7309,7 @@ might help (with 'rm \jobname.?? \jobnam + #2\hskip\labelspace\hskip\extrasecnoskip\hfill}% + \fi + \entrycontskip=\wd0 +- \entry{\box0 #1}{#3}% ++ \entryinternal{\box0 #1}{#4}% + \fi + } + \newdimen\labelspace +@@ -7406,7 +7694,7 @@ might help (with 'rm \jobname.?? \jobnam + + % @indentedblock is like @quotation, but indents only on the left and + % has no optional argument. +-% ++% + \makedispenvdef{indentedblock}{\indentedblockstart} + % + \def\indentedblockstart{% +@@ -7594,6 +7882,7 @@ might help (with 'rm \jobname.?? \jobnam + {\catcode`\ =\other + \gdef\docopying#1@end copying{\endgroup\def\copyingtext{#1}} + } ++\let\copyingtext\relax + + \def\insertcopying{% + \begingroup +@@ -7602,6 +7891,18 @@ might help (with 'rm \jobname.?? \jobnam + \endgroup + } + ++\def\publication{\checkenv{}\begingroup\macrobodyctxt\dopublication} ++{\catcode`\ =\other ++\gdef\dopublication#1@end publication{\endgroup\def\publicationtext{#1}} ++} ++\let\publicationtext\relax ++ ++\def\insertpublication{% ++ \begingroup ++ \parindent = 0pt % paragraph indentation looks wrong on title page ++ \scanexp\publicationtext ++ \endgroup ++} + + \message{defuns,} + % @defun etc. +@@ -7720,7 +8021,7 @@ might help (with 'rm \jobname.?? \jobnam + % @deftypefnnewline on|off says whether the return type of typed functions + % are printed on their own line. This affects @deftypefn, @deftypefun, + % @deftypeop, and @deftypemethod. +-% ++% + \parseargdef\deftypefnnewline{% + \def\temp{#1}% + \ifx\temp\onword +@@ -7890,7 +8191,7 @@ might help (with 'rm \jobname.?? \jobnam + \tclose{\temp}% typeset the return type + \ifrettypeownline + % put return type on its own line; prohibit line break following: +- \hfil\vadjust{\nobreak}\break ++ \hfil\vadjust{\nobreak}\break + \else + \space % type on same line, so just followed by a space + \fi +@@ -7901,7 +8202,7 @@ might help (with 'rm \jobname.?? \jobnam + {\rm\enskip}% hskip 0.5 em of \rmfont + }{}% + % +- \boldbrax ++ \parenbrackglyphs + % arguments will be output next, if any. + } + +@@ -7911,7 +8212,10 @@ might help (with 'rm \jobname.?? \jobnam + \def\^^M{}% for line continuation + \df \ifdoingtypefn \tt \else \sl \fi + \ifflagclear{txicodevaristt}{}% +- {\def\var##1{{\setregularquotes \ttsl ##1}}}% ++ % use \ttsl for @var in both @def* and @deftype*. ++ % the kern prevents an italic correction at end, which appears ++ % too much for ttsl. ++ {\def\var##1{{\setregularquotes \ttsl ##1\kern 0pt }}}% + #1% + \egroup + } +@@ -7928,8 +8232,9 @@ might help (with 'rm \jobname.?? \jobnam + \let\lparen = ( \let\rparen = ) + + % Be sure that we always have a definition for `(', etc. For example, +-% if the fn name has parens in it, \boldbrax will not be in effect yet, +-% so TeX would otherwise complain about undefined control sequence. ++% if the fn name has parens in it, \parenbrackglyphs will not be in ++% effect yet, so TeX would otherwise complain about undefined control ++% sequence. + { + \activeparens + \gdef\defcharsdefault{% +@@ -7939,49 +8244,28 @@ might help (with 'rm \jobname.?? \jobnam + } + \globaldefs=1 \defcharsdefault + +- \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} ++ \gdef\parenbrackglyphs{\let(=\opnr\let)=\cpnr\let[=\lbrb\let]=\rbrb} + \gdef\magicamp{\let&=\amprm} + } + \let\ampchar\& + +-\newcount\parencount +- +-% If we encounter &foo, then turn on ()-hacking afterwards +-\newif\ifampseen +-\def\amprm#1 {\ampseentrue{\rm\ }} +- +-\def\parenfont{% +- \ifampseen +- % At the first level, print parens in roman, +- % otherwise use the default font. +- \ifnum \parencount=1 \rm \fi +- \else +- % The \sf parens (in \boldbrax) actually are a little bolder than +- % the contained text. This is especially needed for [ and ] . +- \sf +- \fi +-} +-\def\infirstlevel#1{% +- \ifampseen +- \ifnum\parencount=1 +- #1% +- \fi +- \fi +-} +-\def\bfafterword#1 {#1 \bf} ++\def\amprm#1 {{\rm\ }} + ++\newcount\parencount ++% opening and closing parentheses in roman font + \def\opnr{% ++ \ptexslash % italic correction + \global\advance\parencount by 1 +- {\parenfont(}% +- \infirstlevel \bfafterword ++ {\sf(}% + } +-\def\clnr{% +- {\parenfont)}% +- \infirstlevel \sl ++\def\cpnr{% ++ \ptexslash % italic correction ++ {\sf)}% + \global\advance\parencount by -1 + } + + \newcount\brackcount ++% left and right square brackets in bold font + \def\lbrb{% + \global\advance\brackcount by 1 + {\bf[}% +@@ -8023,24 +8307,17 @@ might help (with 'rm \jobname.?? \jobnam + } + \fi + +-\let\E=\expandafter +- + % Used at the time of macro expansion. + % Argument is macro body with arguments substituted + \def\scanmacro#1{% + \newlinechar`\^^M +- % expand the expansion of \eatleadingcr twice to maybe remove a leading +- % newline (and \else and \fi tokens), then call \eatspaces on the result. +- \def\xeatspaces##1{% +- \E\E\E\E\E\E\E\eatspaces\E\E\E\E\E\E\E{\eatleadingcr##1% +- }}% +- \def\xempty##1{}% ++ \def\xeatspaces##1{\eatleadingcrthen\eatspaces{##1}}% + % + % Process the macro body under the current catcode regime. + \scantokens{#1@comment}% + % + % The \comment is to remove the \newlinechar added by \scantokens, and +- % can be noticed by \parsearg. Note \c isn't used because this means cedilla ++ % can be noticed by \parsearg. Note \c isn't used because this means cedilla + % in math mode. + } + +@@ -8087,10 +8364,12 @@ might help (with 'rm \jobname.?? \jobnam + \unbrace{\gdef\trim@@@ #1 } #2@{#1} + } + +-{\catcode`\^^M=\other% +-\gdef\eatleadingcr#1{\if\noexpand#1\noexpand^^M\else\E#1\fi}}% +-% Warning: this won't work for a delimited argument +-% or for an empty argument ++% Trim a single leading ^^M off a string, then call #1 ++{\catcode`\^^M=\active \catcode`\Q=3% ++\gdef\eatleadingcrthen #1#2{\eatlcra #1Q#2Q^^MQ}% ++\gdef\eatlcra #1#2Q^^M{\eatlcrb #1#2Q}% ++\gdef\eatlcrb #1Q#2Q#3Q{#1{#2}}% ++} + + % Trim a single trailing ^^M off a string. + {\catcode`\^^M=\other \catcode`\Q=3% +@@ -8226,6 +8505,10 @@ might help (with 'rm \jobname.?? \jobnam + % is #, then the preceding argument is delimited by + % an opening brace, and that opening brace is not consumed. + ++% Make @ a letter, so that we can make private-to-Texinfo macro names. ++\edef\texiatcatcode{\the\catcode`\@} ++\catcode `@=11\relax ++ + % Parse the optional {params} list to @macro or @rmacro. + % Set \paramno to the number of arguments, + % and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a +@@ -8233,19 +8516,18 @@ might help (with 'rm \jobname.?? \jobnam + % list to some hook where the argument is to be expanded. If there are + % less than 10 arguments that hook is to be replaced by ##N where N + % is the position in that list, that is to say the macro arguments are to be +-% defined `a la TeX in the macro body. ++% defined `a la TeX in the macro body. + % + % That gets used by \mbodybackslash (above). + % + % If there are 10 or more arguments, a different technique is used: see +-% \parsemmanyargdef. ++% \parsemmanyargdef@@. + % + \def\parsemargdef#1;{% + \paramno=0\def\paramlist{}% + \let\hash\relax + % \hash is redefined to `#' later to get it into definitions + \let\xeatspaces\relax +- \let\xempty\relax + \parsemargdefxxx#1,;,% + \ifnum\paramno<10\relax\else + \paramno0\relax +@@ -8257,29 +8539,25 @@ might help (with 'rm \jobname.?? \jobnam + \else \let\next=\parsemargdefxxx + \advance\paramno by 1 + \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname +- {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}% ++ {\xeatspaces{\hash\the\paramno}}% + \edef\paramlist{\paramlist\hash\the\paramno,}% + \fi\next} +-% the \xempty{} is to give \eatleadingcr an argument in the case of an +-% empty macro argument. + + % \parsemacbody, \parsermacbody + % + % Read recursive and nonrecursive macro bodies. (They're different since + % rec and nonrec macros end differently.) +-% ++% + % We are in \macrobodyctxt, and the \xdef causes backslashes in the macro + % body to be transformed. + % Set \macrobody to the body of the macro, and call \macrodef. + % ++\catcode `\@\texiatcatcode + {\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{% + \xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}% + {\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{% + \xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}% +- +-% Make @ a letter, so that we can make private-to-Texinfo macro names. +-\edef\texiatcatcode{\the\catcode`\@} +-\catcode `@=11\relax ++\catcode `\@=11\relax + + %%%%%%%%%%%%%% Code for > 10 arguments only %%%%%%%%%%%%%%%%%% + +@@ -8302,7 +8580,7 @@ might help (with 'rm \jobname.?? \jobnam + % twice the \macarg.BLAH macros does not cost too much processing power. + \def\parsemmanyargdef@@#1,{% + \if#1;\let\next=\relax +- \else ++ \else + \let\next=\parsemmanyargdef@@ + \edef\tempb{\eatspaces{#1}}% + \expandafter\def\expandafter\tempa +@@ -8387,7 +8665,7 @@ might help (with 'rm \jobname.?? \jobnam + + % Replace arguments by their values in the macro body, and place the result + % in macro \@tempa. +-% ++% + \def\macvalstoargs@{% + % To do this we use the property that token registers that are \the'ed + % within an \edef expand only once. So we are going to place all argument +@@ -8411,9 +8689,9 @@ might help (with 'rm \jobname.?? \jobnam + \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% + } + +-% Define the named-macro outside of this group and then close this group. +-% +-\def\macargexpandinbody@{% ++% Define the named-macro outside of this group and then close this group. ++% ++\def\macargexpandinbody@{% + \expandafter + \endgroup + \macargdeflist@ +@@ -8451,7 +8729,7 @@ might help (with 'rm \jobname.?? \jobnam + } + + % Trailing missing arguments are set to empty. +-% ++% + \def\setemptyargvalues@{% + \ifx\paramlist\nilm@ + \let\next\macargexpandinbody@ +@@ -8511,7 +8789,7 @@ might help (with 'rm \jobname.?? \jobnam + \expandafter\xdef\csname\the\macname\endcsname{% + \begingroup + \noexpand\spaceisspace +- \noexpand\endlineisspace ++ \noexpand\ignoreactivenewline + \noexpand\expandafter % skip any whitespace after the macro name. + \expandafter\noexpand\csname\the\macname @@@\endcsname}% + \expandafter\xdef\csname\the\macname @@@\endcsname{% +@@ -8529,7 +8807,7 @@ might help (with 'rm \jobname.?? \jobnam + \else % at most 9 + \ifnum\paramno<10\relax + % @MACNAME sets the context for reading the macro argument +- % @MACNAME@@ gets the argument, processes backslashes and appends a ++ % @MACNAME@@ gets the argument, processes backslashes and appends a + % comma. + % @MACNAME@@@ removes braces surrounding the argument list. + % @MACNAME@@@@ scans the macro body with arguments substituted. +@@ -8540,15 +8818,13 @@ might help (with 'rm \jobname.?? \jobnam + \noexpand\expandafter + \expandafter\noexpand\csname\the\macname @@\endcsname}% + \expandafter\xdef\csname\the\macname @@\endcsname##1{% +- \noexpand\passargtomacro +- \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% ++ \noexpand\passargtomacro ++ \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}% + \expandafter\xdef\csname\the\macname @@@\endcsname##1{% +- \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% +- \expandafter\expandafter +- \expandafter\xdef +- \expandafter\expandafter +- \csname\the\macname @@@@\endcsname\paramlist{% +- \endgroup\noexpand\scanmacro{\macrobody}}% ++ \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}% ++ \expandaftergroup{\expandafter\xdef\csname\the\macname @@@@\endcsname}% ++ \paramlist{% ++ \endgroup\noexpand\scanmacro{\macrobody}}% + \else % 10 or more: + \expandafter\xdef\csname\the\macname\endcsname{% + \noexpand\getargvals@{\the\macname}{\argl}% +@@ -8560,6 +8836,16 @@ might help (with 'rm \jobname.?? \jobnam + + \catcode `\@\texiatcatcode\relax % end private-to-Texinfo catcodes + ++% utility definition to avoid excessive use of \expandafter. call ++% as \expandaftergroup{CONTENT}\WORD to expand \WORD exactly once and remove ++% braces around CONTENT. ++\def\expandaftergroup#1#2{% ++ \expandafter\expandaftergroupx\expandafter{#2}{#1}% ++} ++\def\expandaftergroupx#1#2{% ++ #2#1% ++} ++ + \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} + + +@@ -8573,11 +8859,11 @@ might help (with 'rm \jobname.?? \jobnam + % Call #1 with a list of tokens #2, with any doubled backslashes in #2 + % compressed to one. + % +-% This implementation works by expansion, and not execution (so we cannot use +-% \def or similar). This reduces the risk of this failing in contexts where +-% complete expansion is done with no execution (for example, in writing out to ++% This implementation works by expansion, and not execution (so we cannot use ++% \def or similar). This reduces the risk of this failing in contexts where ++% complete expansion is done with no execution (for example, in writing out to + % an auxiliary file for an index entry). +-% ++% + % State is kept in the input stream: the argument passed to + % @look_ahead, @gobble_and_check_finish and @add_segment is + % +@@ -8599,11 +8885,11 @@ might help (with 'rm \jobname.?? \jobnam + % #3 - NEXT_TOKEN + % #4 used to look ahead + % +-% If the next token is not a backslash, process the rest of the argument; ++% If the next token is not a backslash, process the rest of the argument; + % otherwise, remove the next token. + @gdef@look_ahead#1!#2#3#4{% + @ifx#4\% +- @expandafter@gobble_and_check_finish ++ @expandafter@gobble_and_check_finish + @else + @expandafter@add_segment + @fi#1!{#2}#4#4% +@@ -8627,9 +8913,9 @@ might help (with 'rm \jobname.?? \jobnam + % #3 - NEXT_TOKEN + % #4 is input stream until next backslash + % +-% Input stream is either at the start of the argument, or just after a +-% backslash sequence, either a lone backslash, or a doubled backslash. +-% NEXT_TOKEN contains the first token in the input stream: if it is \finish, ++% Input stream is either at the start of the argument, or just after a ++% backslash sequence, either a lone backslash, or a doubled backslash. ++% NEXT_TOKEN contains the first token in the input stream: if it is \finish, + % finish; otherwise, append to ARG_RESULT the segment of the argument up until + % the next backslash. PENDING_BACKSLASH contains a backslash to represent + % a backslash just before the start of the input stream that has not been +@@ -8641,13 +8927,13 @@ might help (with 'rm \jobname.?? \jobnam + % append the pending backslash to the result, followed by the next segment + @expandafter@is_fi@look_ahead#1#2#4!{\}@fi + % this @fi is discarded by @look_ahead. +- % we can't get rid of it with \expandafter because we don't know how ++ % we can't get rid of it with \expandafter because we don't know how + % long #4 is. + } + + % #1 - THE_MACRO + % #2 - ARG_RESULT +-% #3 discards the res of the conditional in @add_segment, and @is_fi ends the ++% #3 discards the res of the conditional in @add_segment, and @is_fi ends the + % conditional. + @gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}} + +@@ -8659,7 +8945,7 @@ might help (with 'rm \jobname.?? \jobnam + % for reading the argument (slightly different in the two cases). Then, + % to read the argument, in the whole-line case, it then calls the regular + % \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC. +-% ++% + \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} + \def\braceorlinexxx{% + \ifx\nchar\bgroup +@@ -8729,9 +9015,8 @@ might help (with 'rm \jobname.?? \jobnam + \expandafter\noexpand + \csname\the\macname @@@\endcsname##1\noexpand\endlinemacro + } +- \expandafter\expandafter +- \expandafter\xdef +- \expandafter\expandafter\csname\the\macname @@@\endcsname\paramlist{% ++ \expandaftergroup{\expandafter\xdef\csname\the\macname @@@\endcsname}% ++ \paramlist{% + \newlinechar=13 % split \macrobody into lines + \noexpand\scantokens{\macrobody}% + } +@@ -8782,7 +9067,7 @@ might help (with 'rm \jobname.?? \jobnam + + % Used so that the @top node doesn't have to be wrapped in an @ifnottex + % conditional. +-% \doignore goes to more effort to skip nested conditionals but we don't need ++% \doignore goes to more effort to skip nested conditionals but we don't need + % that here. + \def\omittopnode{% + \ifx\lastnode\wordTop +@@ -8806,14 +9091,19 @@ might help (with 'rm \jobname.?? \jobnam + \let\lastnode=\empty + + % Write a cross-reference definition for the current node. #1 is the +-% type (Ynumbered, Yappendix, Ynothing). ++% type (Ynumbered, Yappendix, Ynothing). #2 is the section title. + % +-\def\donoderef#1{% ++\def\donoderef#1#2{% + \ifx\lastnode\empty\else +- \setref{\lastnode}{#1}% ++ \setref{\lastnode}{#1}{#2}% + \global\let\lastnode=\empty ++ \setnodeseenonce + \fi + } ++\def\setnodeseenonce{ ++ \global\nodeseentrue ++ \let\setnodeseenonce\relax ++} + + % @nodedescription, @nodedescriptionblock - do nothing for TeX + \parseargdef\nodedescription{} +@@ -8826,21 +9116,28 @@ might help (with 'rm \jobname.?? \jobnam + % + \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} + \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} +-\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} ++\def\anchor#1{% ++ \savesf \setref{#1}{Yanchor}{#1}\restoresf \ignorespaces ++} ++ ++% @namedanchor{NAME, XREFNAME} -- define xref target at arbitrary point ++% with label text for cross-references to it. ++\def\namedanchor#1{\donamedanchor#1\finish}% ++\def\donamedanchor#1,#2\finish{% ++ \savesf \setref{#1}{Yanchor}{\ignorespaces #2\unskip}\restoresf \ignorespaces ++} + +-% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an +-% anchor), which consists of three parts: +-% 1) NAME-title - the current sectioning name taken from \currentsection, +-% or the anchor name. +-% 2) NAME-snt - section number and type, passed as the SNT arg, or +-% empty for anchors. ++% \setref{NAME}{SNT}{TITLE} defines a cross-reference point NAME (a node ++% or an anchor), which consists of three parts: ++% 1) NAME-title - the current sectioning name ++% 2) NAME-snt - section number and type, passed as the SNT arg. + % 3) NAME-pg - the page number. + % + % This is called from \donoderef, \anchor, and \dofloat. In the case of + % floats, there is an additional part, which is not written here: + % 4) NAME-lof - the text as it should appear in a @listoffloats. + % +-\def\setref#1#2{% ++\def\setref#1#2#3{% + \pdfmkdest{#1}% + \iflinks + {% +@@ -8852,7 +9149,7 @@ might help (with 'rm \jobname.?? \jobnam + \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef + ##1}{##2}}% these are parameters of \writexrdef + }% +- \toks0 = \expandafter{\currentsection}% ++ \toks0 = {#3}% + \immediate \writexrdef{title}{\the\toks0 }% + \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. + \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout +@@ -8864,7 +9161,7 @@ might help (with 'rm \jobname.?? \jobnam + % automatically in xrefs, if the third arg is not explicitly specified. + % This was provided as a "secret" @set xref-automatic-section-title + % variable, now it's official. +-% ++% + \parseargdef\xrefautomaticsectiontitle{% + \def\temp{#1}% + \ifx\temp\onword +@@ -8880,7 +9177,7 @@ might help (with 'rm \jobname.?? \jobnam + \fi\fi + } + +-% ++% + % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is + % the node name, #2 the name of the Info cross-reference, #3 the printed + % node name, #4 the name of the Info file, #5 the name of the printed +@@ -8906,15 +9203,7 @@ might help (with 'rm \jobname.?? \jobnam + \setbox\infofilenamebox = \hbox{\infofilename\unskip}% + % + \startxreflink{#1}{#4}% +- {% +- % Have to otherify everything special to allow the \csname to +- % include an _ in the xref name, etc. +- \indexnofonts +- \turnoffactive +- \def\value##1{##1}% +- \expandafter\global\expandafter\let\expandafter\Xthisreftitle +- \csname XR#1-title\endcsname +- }% ++ \getrefx{#1-title}\Xthisreftitle + % + % Float references are printed completely differently: "Figure 1.2" + % instead of "[somenode], p.3". \iffloat distinguishes them by +@@ -8947,21 +9236,23 @@ might help (with 'rm \jobname.?? \jobnam + % Cross-manual reference with a printed manual name. + % + \crossmanualxref{\cite{\printedmanual\unskip}}% +- % + \else\ifdim \wd\infofilenamebox > 0pt + % Cross-manual reference with only an info filename (arg 4), no + % printed manual name (arg 5). This is essentially the same as + % the case above; we output the filename, since we have nothing else. + % + \crossmanualxref{\code{\infofilename\unskip}}% +- % + \else + % Reference within this manual. + % +- % Only output a following space if the -snt ref is nonempty, as the ref +- % will be empty for @unnumbered and @anchor. +- \setbox2 = \hbox{\ignorespaces \refx{#1-snt}}% +- \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi ++ % Only output a following space if the -snt ref is nonempty, as is ++ % the case for @unnumbered and @anchor. ++ \getrefx{#1-snt}\tmp ++ \ifx\tmp\empty\else ++ \ifx\tmp\Yanchor\else ++ \tmp\space ++ \fi ++ \fi + % + % output the `[mynode]' via the macro below so it can be overridden. + \xrefprintnodename\printedrefname +@@ -9017,7 +9308,7 @@ might help (with 'rm \jobname.?? \jobnam + \else + % Otherwise just copy the Info node name. + \def\printedrefname{\ignorespaces #1}% +- \fi% ++ \fi + \fi + \fi + \fi +@@ -9049,7 +9340,7 @@ might help (with 'rm \jobname.?? \jobnam + \ifnum\filenamelength>0 + goto file{\the\filename.pdf} name{\pdfdestname}% + \else +- goto name{\pdfmkpgn{\pdfdestname}}% ++ goto name{\pdfdestname}% + \fi + \else % XeTeX + \ifnum\filenamelength>0 +@@ -9078,20 +9369,20 @@ might help (with 'rm \jobname.?? \jobnam + \space\putwordpage\tie\refx{#1-pg}} + + % Output a cross-manual xref to #1. Used just above (twice). +-% ++% + % Only include the text "Section ``foo'' in" if the foo is neither + % missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply + % "see The Foo Manual", the idea being to refer to the whole manual. +-% ++% + % But, this being TeX, we can't easily compare our node name against the + % string "Top" while ignoring the possible spaces before and after in + % the input. By adding the arbitrary 7sp below, we make it much less + % likely that a real node name would have the same width as "Top" (e.g., + % in a monospaced font). Hopefully it will never happen in practice. +-% ++% + % For the same basic reason, we retypeset the "Top" at every + % reference, since the current font is indeterminate. +-% ++% + \def\crossmanualxref#1{% + \setbox\toprefbox = \hbox{Top\kern7sp}% + \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% +@@ -9129,6 +9420,7 @@ might help (with 'rm \jobname.?? \jobnam + % + \def\Ynothing{} + \def\Yomitfromtoc{} ++\def\Yanchor{\isanchor} \let\isanchor\relax + \def\Ynumbered{% + \ifnum\secno=0 + \putwordChapter@tie \the\chapno +@@ -9155,14 +9447,7 @@ might help (with 'rm \jobname.?? \jobnam + + % \refx{NAME} - reference a cross-reference string named NAME. + \def\refx#1{% +- \requireauxfile +- {% +- \indexnofonts +- \turnoffactive +- \def\value##1{##1}% +- \expandafter\global\expandafter\let\expandafter\thisrefX +- \csname XR#1\endcsname +- }% ++ \getrefx{#1}\thisrefX + \ifx\thisrefX\relax + % If not defined, say something at least. + \angleleft un\-de\-fined\angleright +@@ -9183,9 +9468,20 @@ might help (with 'rm \jobname.?? \jobnam + \fi + } + +-% This is the macro invoked by entries in the aux file. Define a control +-% sequence for a cross-reference target (we prepend XR to the control sequence +-% name to avoid collisions). The value is the page number. If this is a float ++% Set #2 to xref string #1 ++\def\getrefx#1#2{% ++ \requireauxfile ++ {% ++ \indexnofonts ++ \turnoffactive ++ \def\value##1{##1}% ++ \expandafter\global\expandafter\let\expandafter#2\csname XR#1\endcsname ++ }% ++} ++ ++% This is the macro invoked by entries in the aux file. Define a control ++% sequence for a cross-reference target (we prepend XR to the control sequence ++% name to avoid collisions). The value is the page number. If this is a float + % type, we have more work to do. + % + \def\xrdef#1#2{% +@@ -9201,10 +9497,10 @@ might help (with 'rm \jobname.?? \jobnam + \bgroup + \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% + \egroup +- % We put the \gdef inside a group to avoid the definitions building up on +- % TeX's save stack, which can cause it to run out of space for aux files with ++ % We put the \gdef inside a group to avoid the definitions building up on ++ % TeX's save stack, which can cause it to run out of space for aux files with + % thousands of lines. \gdef doesn't use the save stack, but \csname does +- % when it defines an unknown control sequence as \relax. ++ % when it defines an unknown control sequence as \relax. + % + % Was that xref control sequence that we just defined for a float? + \expandafter\iffloat\csname XR\safexrefname\endcsname +@@ -9225,6 +9521,7 @@ might help (with 'rm \jobname.?? \jobnam + \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 + {\safexrefname}}% + \fi ++ \ignorespaces % ignore ends of line in aux file + } + + % If working on a large document in chapters, it is convenient to +@@ -9247,12 +9544,14 @@ might help (with 'rm \jobname.?? \jobnam + % Read the last existing aux file, if any. No error if none exists. + % + \def\tryauxfile{% ++ \ifxetex\xetexpreauxfile\fi + \openin 1 \jobname.aux + \ifeof 1 \else + \readdatafile{aux}% + \global\havexrefstrue + \fi + \closein 1 ++ \ifxetex\xetexpostauxfile\fi + } + + \def\setupdatafile{% +@@ -9335,7 +9634,10 @@ might help (with 'rm \jobname.?? \jobnam + % Auto-number footnotes. Otherwise like plain. + \gdef\footnote{% + \global\advance\footnoteno by \@ne +- \edef\thisfootno{$^{\the\footnoteno}$}% ++ % ++ % Output for the footnote marker. If we are immediately after another ++ % footnote, output a comma and small space first. ++ \edef\thisfootno{$^{\ifnum\lastpenalty=3 ,\mskip 1mu \fi\the\footnoteno}$}% + % + % In case the footnote comes at the end of a sentence, preserve the + % extra spacing after we do the footnote number. +@@ -9344,19 +9646,25 @@ might help (with 'rm \jobname.?? \jobnam + % + % Remove inadvertent blank space before typesetting the footnote number. + \unskip +- \thisfootno\@sf ++ % ++ % \scriptspace is 0.5pt by default and gives excessive space before the ++ % comma if we have multiple footnote markers in a row. ++ \bgroup\scriptspace=0pt ++ \thisfootno\@sf ++ \egroup + \dofootnote + }% + +-% Don't bother with the trickery in plain.tex to not require the +-% footnote text as a parameter. Our footnotes don't need to be so general. +-% +-% Oh yes, they do; otherwise, @ifset (and anything else that uses +-% \parseargline) fails inside footnotes because the tokens are fixed when +-% the footnote is read. --karl, 16nov96. ++% marker for immediately after a footnote marker ++\gdef\footnoteendmarker{\penalty3 } ++ ++% Do not require the footnote text as a parameter; otherwise, @ifset ++% (and anything else that uses \parseargline) fails inside footnotes ++% because the tokens are fixed when the footnote is read. + % + \gdef\dofootnote{% + \insert\footins\bgroup ++ \aftergroup\footnoteendmarker + % + % Nested footnotes are not supported in TeX, that would take a lot + % more work. (\startsavinginserts does not suffice.) +@@ -9387,14 +9695,14 @@ might help (with 'rm \jobname.?? \jobnam + % Hang the footnote text off the number. Use \everypar in case the + % footnote extends for more than one paragraph. + \everypar = {\hang}% +- \textindent{\thisfootno}% ++ \textindent{$^{\the\footnoteno}$}% + % + % Don't crash into the line above the footnote text. Since this + % expands into a box, it must come within the paragraph, lest it + % provide a place where TeX can split the footnote. + \footstrut + % +- % Invoke rest of plain TeX footnote routine. ++ % Eat opening brace and invoke rest of plain TeX footnote routine. + \futurelet\next\fo@t + } + }%end \catcode `\@=11 +@@ -9551,7 +9859,9 @@ might help (with 'rm \jobname.?? \jobnam + % For pdfTeX and LuaTeX <= 0.80 + \dopdfimage{#1}{#2}{#3}% + \else +- \ifx\XeTeXrevision\thisisundefined ++ \ifxetex ++ \doxeteximage{#1}{#2}{#3}% ++ \else + % For epsf.tex + % \epsfbox itself resets \epsf?size at each figure. + \setbox0 = \hbox{\ignorespaces #2}% +@@ -9559,9 +9869,6 @@ might help (with 'rm \jobname.?? \jobnam + \setbox0 = \hbox{\ignorespaces #3}% + \ifdim\wd0 > 0pt \epsfysize=#3\relax \fi + \epsfbox{#1.eps}% +- \else +- % For XeTeX +- \doxeteximage{#1}{#2}{#3}% + \fi + \fi + % +@@ -9639,14 +9946,15 @@ might help (with 'rm \jobname.?? \jobnam + \global\advance\floatno by 1 + % + {% +- % This magic value for \currentsection is output by \setref as the +- % XREFLABEL-title value. \xrefX uses it to distinguish float ++ % This magic value for the third argument of \setref is output as ++ % the XREFLABEL-title value. \xrefX uses it to distinguish float + % labels (which have a completely different output format) from + % node and anchor labels. And \xrdef uses it to construct the + % lists of floats. + % +- \edef\currentsection{\floatmagic=\safefloattype}% +- \setref{\floatlabel}{Yfloat}% ++ \edef\tmp{\noexpand\setref{\noexpand\floatlabel}{Yfloat}% ++ {\floatmagic=\safefloattype}}% ++ \tmp + }% + \fi + % +@@ -9768,7 +10076,7 @@ might help (with 'rm \jobname.?? \jobnam + + % #1 is the control sequence we are passed; we expand into a conditional + % which is true if #1 represents a float ref. That is, the magic +-% \currentsection value which we \setref above. ++% value which we passed to \setref above. + % + \def\iffloat#1{\expandafter\doiffloat#1==\finish} + % +@@ -9825,6 +10133,7 @@ might help (with 'rm \jobname.?? \jobnam + \toksA = \expandafter{\csname XR#1-lof\endcsname}% + % + % use the same \entry macro we use to generate the TOC and index. ++ \let\entry\entryinternal + \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% + \writeentry + }} +@@ -9860,8 +10169,18 @@ might help (with 'rm \jobname.?? \jobnam + \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% + \openin 1 txi-#1.tex + \ifeof 1 +- \errhelp = \nolanghelp +- \errmessage{Cannot read language file txi-#1.tex}% ++ \def\lang{#1}% ++ \def\enword{en}% ++ \ifx\lang\enword ++ % for English only, keep on going rather than issuing a fatal error ++ % message, as txi-en.tex likely doesn't contain any changes from the ++ % defaults. note that this is a problem if we already loaded another ++ % language file and want to switch back to English. ++ \message{Cannot read language file txi-#1.tex}% ++ \else ++ \errhelp = \nolanghelp ++ \errmessage{Cannot read language file txi-#1.tex}% ++ \fi + \else + \globaldefs = 1 % everything in the txi-LL files needs to persist + \input txi-#1.tex +@@ -9907,35 +10226,40 @@ directory should work if nowhere else do + \newif\iftxinativeunicodecapable + \newif\iftxiusebytewiseio + +-\ifx\XeTeXrevision\thisisundefined +- \ifx\luatexversion\thisisundefined +- \txinativeunicodecapablefalse +- \txiusebytewiseiotrue +- \else ++\ifxetex ++ \txinativeunicodecapabletrue ++ \txiusebytewiseiofalse ++\else ++ \ifluatex + \txinativeunicodecapabletrue + \txiusebytewiseiofalse ++ \else ++ \txinativeunicodecapablefalse ++ \txiusebytewiseiotrue + \fi +-\else +- \txinativeunicodecapabletrue +- \txiusebytewiseiofalse + \fi + ++\let\xetexpreauxfile\relax ++\let\xetexpostauxfile\relax ++ + % Set I/O by bytes instead of UTF-8 sequence for XeTeX and LuaTex + % for non-UTF-8 (byte-wise) encodings. + % + \def\setbytewiseio{% +- \ifx\XeTeXrevision\thisisundefined +- \else +- \XeTeXdefaultencoding "bytes" % For subsequent files to be read +- \XeTeXinputencoding "bytes" % For document root file +- % Unfortunately, there seems to be no corresponding XeTeX command for +- % output encoding. This is a problem for auxiliary index and TOC files. +- % The only solution would be perhaps to write out @U{...} sequences in +- % place of non-ASCII characters. ++ \ifxetex ++ % For document root file ++ \XeTeXinputencoding "bytes" ++ % ++ % Setting for subsequent files to be read with @include. ++ \XeTeXdefaultencoding "bytes" ++ % ++ % Use UTF-8 for reading auxiliary index and TOC files, which are ++ % always output in UTF-8 with XeTeX. ++ \def\xetexpreauxfile{\XeTeXdefaultencoding "UTF-8"}% ++ \def\xetexpostauxfile{\XeTeXdefaultencoding "bytes"}% + \fi + +- \ifx\luatexversion\thisisundefined +- \else ++ \ifluatex + \directlua{ + local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub + local function convert_char (char) +@@ -10044,8 +10368,7 @@ directory should work if nowhere else do + \fi % lattwo + \fi % ascii + % +- \ifx\XeTeXrevision\thisisundefined +- \else ++ \ifxetex + \ifx \declaredencoding \utfeight + \else + \ifx \declaredencoding \ascii +@@ -10328,11 +10651,15 @@ directory should work if nowhere else do + + \gdef\UTFviiiDefined#1{% + \ifx #1\relax +- \message{\linenumber Unicode char \string #1 not defined for Texinfo}% ++ \ifutfviiidefinedwarning ++ \message{\linenumber Unicode char \string #1 not defined for Texinfo}% ++ \fi + \else + \expandafter #1% + \fi + } ++\newif\ifutfviiidefinedwarning ++\utfviiidefinedwarningtrue + + % Give non-ASCII bytes the active definitions for processing UTF-8 sequences + \begingroup +@@ -10342,8 +10669,8 @@ directory should work if nowhere else do + + % Loop from \countUTFx to \countUTFy, performing \UTFviiiTmp + % substituting ~ and $ with a character token of that value. +- \def\UTFviiiLoop{% +- \global\catcode\countUTFx\active ++ \gdef\UTFviiiLoop{% ++ \catcode\countUTFx\active + \uccode`\~\countUTFx + \uccode`\$\countUTFx + \uppercase\expandafter{\UTFviiiTmp}% +@@ -10351,7 +10678,7 @@ directory should work if nowhere else do + \ifnum\countUTFx < \countUTFy + \expandafter\UTFviiiLoop + \fi} +- ++ % + % For bytes other than the first in a UTF-8 sequence. Not expected to + % be expanded except when writing to auxiliary files. + \countUTFx = "80 +@@ -10385,6 +10712,16 @@ directory should work if nowhere else do + \else\expandafter\UTFviiiFourOctets\expandafter$\fi + }}% + \UTFviiiLoop ++ % ++ % for pdftex only, used to expand ASCII to UTF-16BE. ++ \gdef\asciitounicode{% ++ \countUTFx = "20 ++ \countUTFy = "80 ++ \def\UTFviiiTmp{% ++ \def~{\nullbyte $}}% ++ \UTFviiiLoop ++ } ++ {\catcode0=11 \gdef\nullbyte{^^00}}% + \endgroup + + \def\globallet{\global\let} % save some \expandafter's below +@@ -10401,7 +10738,7 @@ directory should work if nowhere else do + \uppercase{.} + \endgroup + \else +- \errhelp = \EMsimple ++ \errhelp = \EMsimple + \errmessage{Unicode character U+#1 not supported, sorry}% + \fi + \else +@@ -10409,8 +10746,8 @@ directory should work if nowhere else do + \fi + } + +-% These macros are used here to construct the name of a control +-% sequence to be defined. ++% These macros are used here to construct the names of macros ++% that expand to the definitions for UTF-8 sequences. + \def\UTFviiiTwoOctetsName#1#2{% + \csname u8:#1\string #2\endcsname}% + \def\UTFviiiThreeOctetsName#1#2#3{% +@@ -10418,6 +10755,35 @@ directory should work if nowhere else do + \def\UTFviiiFourOctetsName#1#2#3#4{% + \csname u8:#1\string #2\string #3\string #4\endcsname}% + ++% generate UTF-16 from codepoint ++\def\utfsixteentotoks#1#2{% ++ \countUTFz = "#2\relax ++ \ifnum \countUTFz > 65535 ++ % doesn't work for codepoints > U+FFFF ++ % we don't define glyphs for any of these anyway, so it doesn't matter ++ #1={U+#2}% ++ \else ++ \countUTFx = \countUTFz ++ \divide\countUTFx by 256 ++ \countUTFy = \countUTFx ++ \multiply\countUTFx by 256 ++ \advance\countUTFz by -\countUTFx ++ \uccode`,=\countUTFy ++ \uccode`;=\countUTFz ++ \ifnum\countUTFy = 0 ++ \uppercase{#1={\nullbyte\string;}}% ++ \else\ifnum\countUTFz = 0 ++ \uppercase{#1={\string,\nullbyte}}% ++ \else ++ \uppercase{#1={\string,\string;}}% ++ \fi\fi ++ % NB \uppercase cannot insert a null byte ++ \fi ++} ++ ++\newif\ifutfbytespdf ++\utfbytespdffalse ++ + % For UTF-8 byte sequences (TeX, e-TeX and pdfTeX), + % provide a definition macro to replace a Unicode character; + % this gets used by the @U command +@@ -10434,19 +10800,23 @@ directory should work if nowhere else do + \countUTFz = "#1\relax + \begingroup + \parseXMLCharref +- +- % Give \u8:... its definition. The sequence of seven \expandafter's +- % expands after the \gdef three times, e.g. + % ++ % Completely expand \UTFviiiTmp, which looks like: + % 1. \UTFviiTwoOctetsName B1 B2 + % 2. \csname u8:B1 \string B2 \endcsname + % 3. \u8: B1 B2 (a single control sequence token) ++ \xdef\UTFviiiTmp{\UTFviiiTmp}% + % +- \expandafter\expandafter +- \expandafter\expandafter +- \expandafter\expandafter +- \expandafter\gdef \UTFviiiTmp{#2}% +- % ++ \ifpdf ++ \toksA={#2}% ++ \utfsixteentotoks\toksB{#1}% ++ \expandafter\xdef\UTFviiiTmp{% ++ \noexpand\ifutfbytespdf\noexpand\utfbytes{\the\toksB}% ++ \noexpand\else\the\toksA\noexpand\fi}% ++ \else ++ \expandafter\gdef\UTFviiiTmp{#2}% ++ \fi ++ % + \expandafter\ifx\csname uni:#1\endcsname \relax \else + \message{Internal error, already defined: #1}% + \fi +@@ -10455,8 +10825,9 @@ directory should work if nowhere else do + \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp + \endgroup} + % +- % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp +- % to the corresponding UTF-8 sequence. ++ % Given the value in \countUTFz as a Unicode code point, set ++ % \UTFviiiTmp to one of the \UTVviii*OctetsName macros followed by ++ % the corresponding UTF-8 sequence. + \gdef\parseXMLCharref{% + \ifnum\countUTFz < "20\relax + \errhelp = \EMsimple +@@ -10485,7 +10856,7 @@ directory should work if nowhere else do + \divide\countUTFz by 64 + \countUTFy = \countUTFz % Save to be the future value of \countUTFz. + \multiply\countUTFz by 64 +- ++ + % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract + % in order to get the last five bits. + \advance\countUTFx by -\countUTFz +@@ -10515,12 +10886,22 @@ directory should work if nowhere else do + \catcode"#1=\other + } + ++% Suppress ligature creation from adjacent characters. ++\ifluatex ++ % Braces do not suppress ligature creation in LuaTeX, e.g. in of{}fice ++ % to suppress the "ff" ligature. Using a kern appears to be the only ++ % workaround. ++ \def\nolig{\kern0pt{}} ++\else ++ \def\nolig{{}} ++\fi ++ + % https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M + % U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block) + % U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block) + % U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A + % U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B +-% ++% + % Many of our renditions are less than wonderful, and all the missing + % characters are available somewhere. Loading the necessary fonts + % awaits user request. We can't truly support Unicode without +@@ -11132,8 +11513,8 @@ directory should work if nowhere else do + % Punctuation + \DeclareUnicodeCharacter{2013}{--}% + \DeclareUnicodeCharacter{2014}{---}% +- \DeclareUnicodeCharacter{2018}{\quoteleft{}}% +- \DeclareUnicodeCharacter{2019}{\quoteright{}}% ++ \DeclareUnicodeCharacter{2018}{\quoteleft\nolig}% ++ \DeclareUnicodeCharacter{2019}{\quoteright\nolig}% + \DeclareUnicodeCharacter{201A}{\quotesinglbase{}}% + \DeclareUnicodeCharacter{201C}{\quotedblleft{}}% + \DeclareUnicodeCharacter{201D}{\quotedblright{}}% +@@ -11168,7 +11549,7 @@ directory should work if nowhere else do + \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}% + % + \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}% +- \DeclareUnicodeCharacter{2032}{\ensuremath\prime}% ++ \DeclareUnicodeCharacter{2032}{\ensuremath{^\prime}}% + \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}% + \DeclareUnicodeCharacter{2111}{\ensuremath\Im}% + \DeclareUnicodeCharacter{2113}{\ensuremath\ell}% +@@ -11291,6 +11672,25 @@ directory should work if nowhere else do + % + \global\mathchardef\checkmark="1370% actually the square root sign + \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}% ++ % ++ % These are all the combining accents. We need these empty definitions ++ % at present for the sake of PDF outlines. ++ \DeclareUnicodeCharacter{0300}{}% ++ \DeclareUnicodeCharacter{0301}{}% ++ \DeclareUnicodeCharacter{0302}{}% ++ \DeclareUnicodeCharacter{0303}{}% ++ \DeclareUnicodeCharacter{0305}{}% ++ \DeclareUnicodeCharacter{0306}{}% ++ \DeclareUnicodeCharacter{0307}{}% ++ \DeclareUnicodeCharacter{0308}{}% ++ \DeclareUnicodeCharacter{030A}{}% ++ \DeclareUnicodeCharacter{030B}{}% ++ \DeclareUnicodeCharacter{030C}{}% ++ \DeclareUnicodeCharacter{0323}{}% ++ \DeclareUnicodeCharacter{0327}{}% ++ \DeclareUnicodeCharacter{0328}{}% ++ \DeclareUnicodeCharacter{0331}{}% ++ \DeclareUnicodeCharacter{0361}{}% + }% end of \unicodechardefs + + % UTF-8 byte sequence (pdfTeX) definitions (replacing and @U command) +@@ -11429,12 +11829,12 @@ directory should work if nowhere else do + \pdfhorigin = 1 true in + \pdfvorigin = 1 true in + \else +- \ifx\XeTeXrevision\thisisundefined +- \special{papersize=#8,#7}% +- \else ++ \ifxetex + \pdfpageheight #7\relax + \pdfpagewidth #8\relax + % XeTeX does not have \pdfhorigin and \pdfvorigin. ++ \else ++ \special{papersize=#8,#7}% + \fi + \fi + % +@@ -11634,21 +12034,21 @@ directory should work if nowhere else do + #1#2#3=\countB\relax + } + +-\ifx\XeTeXrevision\thisisundefined +- \ifx\luatexversion\thisisundefined ++\ifxetex % XeTeX ++ \mtsetprotcode\textrm ++ \def\mtfontexpand#1{} ++\else ++ \ifluatex % LuaTeX ++ \mtsetprotcode\textrm ++ \def\mtfontexpand#1{\expandglyphsinfont#1 20 20 1\relax} ++ \else + \ifpdf % pdfTeX + \mtsetprotcode\textrm + \def\mtfontexpand#1{\pdffontexpand#1 20 20 1 autoexpand\relax} + \else % TeX + \def\mtfontexpand#1{} + \fi +- \else % LuaTeX +- \mtsetprotcode\textrm +- \def\mtfontexpand#1{\expandglyphsinfont#1 20 20 1\relax} + \fi +-\else % XeTeX +- \mtsetprotcode\textrm +- \def\mtfontexpand#1{} + \fi + + +@@ -11657,18 +12057,18 @@ directory should work if nowhere else do + \def\microtypeON{% + \microtypetrue + % +- \ifx\XeTeXrevision\thisisundefined +- \ifx\luatexversion\thisisundefined ++ \ifxetex % XeTeX ++ \XeTeXprotrudechars=2 ++ \else ++ \ifluatex % LuaTeX ++ \adjustspacing=2 ++ \protrudechars=2 ++ \else + \ifpdf % pdfTeX + \pdfadjustspacing=2 + \pdfprotrudechars=2 + \fi +- \else % LuaTeX +- \adjustspacing=2 +- \protrudechars=2 + \fi +- \else % XeTeX +- \XeTeXprotrudechars=2 + \fi + % + \mtfontexpand\textrm +@@ -11679,18 +12079,18 @@ directory should work if nowhere else do + \def\microtypeOFF{% + \microtypefalse + % +- \ifx\XeTeXrevision\thisisundefined +- \ifx\luatexversion\thisisundefined ++ \ifxetex % XeTeX ++ \XeTeXprotrudechars=0 ++ \else ++ \ifluatex % LuaTeX ++ \adjustspacing=0 ++ \protrudechars=0 ++ \else + \ifpdf % pdfTeX + \pdfadjustspacing=0 + \pdfprotrudechars=0 + \fi +- \else % LuaTeX +- \adjustspacing=0 +- \protrudechars=0 + \fi +- \else % XeTeX +- \XeTeXprotrudechars=0 + \fi + } + +@@ -11765,7 +12165,7 @@ directory should work if nowhere else do + \def\texinfochars{% + \let< = \activeless + \let> = \activegtr +- \let~ = \activetilde ++ \let~ = \activetilde + \let^ = \activehat + \setregularquotes + \let\b = \strong +--- gcl27-2.7.1.orig/xgcl-2/Events.c ++++ gcl27-2.7.1/xgcl-2/Events.c +@@ -26,202 +26,187 @@ + #include + + /********* XKeyEvent functions *****/ +- +-long make_XKeyEvent (){ ++long ++make_XKeyEvent (void){ + return ((long) calloc(1, sizeof(XKeyEvent))); + } + +-int XKeyEvent_same_screen(i) +-XKeyEvent* i; ++int ++XKeyEvent_same_screen (XKeyEvent* i) + { + return(i->same_screen); + } + +-void set_XKeyEvent_same_screen(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_same_screen (XKeyEvent *i, int j) + { + i->same_screen = j; + } + +-int XKeyEvent_keycode(i) +-XKeyEvent* i; ++int ++XKeyEvent_keycode (XKeyEvent *i) + { + return(i->keycode); + } + +-void set_XKeyEvent_keycode(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_keycode (XKeyEvent *i, int j) + { + i->keycode = j; + } + +-int XKeyEvent_state(i) +-XKeyEvent* i; ++int ++XKeyEvent_state (XKeyEvent *i) + { + return(i->state); + } + +-void set_XKeyEvent_state(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_state (XKeyEvent *i, int j) + { + i->state = j; + } + +-int XKeyEvent_y_root(i) +-XKeyEvent* i; ++int ++XKeyEvent_y_root (XKeyEvent *i) + { + return(i->y_root); + } + +-void set_XKeyEvent_y_root(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_y_root (XKeyEvent *i, int j) + { + i->y_root = j; + } + +-int XKeyEvent_x_root(i) +-XKeyEvent* i; ++int ++XKeyEvent_x_root (XKeyEvent *i) + { + return(i->x_root); + } + +-void set_XKeyEvent_x_root(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_x_root (XKeyEvent *i, int j) + { + i->x_root = j; + } + +-int XKeyEvent_y(i) +-XKeyEvent* i; ++int ++XKeyEvent_y (XKeyEvent *i) + { + return(i->y); + } + +-void set_XKeyEvent_y(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_y (XKeyEvent *i, int j) + { + i->y = j; + } + +-int XKeyEvent_x(i) +-XKeyEvent* i; ++int ++XKeyEvent_x (XKeyEvent *i) + { + return(i->x); + } + +-void set_XKeyEvent_x(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_x (XKeyEvent *i, int j) + { + i->x = j; + } + +-int XKeyEvent_time(i) +-XKeyEvent* i; ++int ++XKeyEvent_time (XKeyEvent *i) + { + return(i->time); + } + +-void set_XKeyEvent_time(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_time (XKeyEvent *i, int j) + { + i->time = j; + } + +-int XKeyEvent_subwindow(i) +-XKeyEvent* i; ++int ++XKeyEvent_subwindow (XKeyEvent *i) + { + return(i->subwindow); + } + +-void set_XKeyEvent_subwindow(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_subwindow (XKeyEvent *i, int j) + { + i->subwindow = j; + } + +-int XKeyEvent_root(i) +-XKeyEvent* i; ++int ++XKeyEvent_root (XKeyEvent *i) + { + return(i->root); + } + +-void set_XKeyEvent_root(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_root (XKeyEvent *i, int j) + { + i->root = j; + } + +-int XKeyEvent_window(i) +-XKeyEvent* i; ++int ++XKeyEvent_window (XKeyEvent *i) + { + return(i->window); + } + +-void set_XKeyEvent_window(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_window (XKeyEvent *i, int j) + { + i->window = j; + } + +-long XKeyEvent_display(i) +-XKeyEvent* i; ++long ++XKeyEvent_display (XKeyEvent *i) + { + return((long) i->display); + } + +-void set_XKeyEvent_display(i, j) +-XKeyEvent* i; +-long j; ++void ++set_XKeyEvent_display (XKeyEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XKeyEvent_send_event(i) +-XKeyEvent* i; ++int ++XKeyEvent_send_event (XKeyEvent *i) + { + return(i->send_event); + } + +-void set_XKeyEvent_send_event(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_send_event (XKeyEvent *i, int j) + { + i->send_event = j; + } + +-int XKeyEvent_serial(i) +-XKeyEvent* i; ++int ++XKeyEvent_serial (XKeyEvent *i) + { + return(i->serial); + } + +-void set_XKeyEvent_serial(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_serial (XKeyEvent *i, int j) + { + i->serial = j; + } + +-int XKeyEvent_type(i) +-XKeyEvent* i; ++int ++XKeyEvent_type (XKeyEvent *i) + { + return(i->type); + } + +-void set_XKeyEvent_type(i, j) +-XKeyEvent* i; +-int j; ++void ++set_XKeyEvent_type (XKeyEvent *i, int j) + { + i->type = j; + } +@@ -229,201 +214,187 @@ int j; + + /********* XButtonEvent functions *****/ + +-long make_XButtonEvent (){ ++long ++make_XButtonEvent (void){ + return ((long) calloc(1, sizeof(XButtonEvent))); + } + +-int XButtonEvent_same_screen(i) +-XButtonEvent* i; ++int ++XButtonEvent_same_screen (XButtonEvent *i) + { + return(i->same_screen); + } + +-void set_XButtonEvent_same_screen(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_same_screen (XButtonEvent *i, int j) + { + i->same_screen = j; + } + +-int XButtonEvent_button(i) +-XButtonEvent* i; ++int ++XButtonEvent_button (XButtonEvent *i) + { + return(i->button); + } + +-void set_XButtonEvent_button(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_button (XButtonEvent *i, int j) + { + i->button = j; + } + +-int XButtonEvent_state(i) +-XButtonEvent* i; ++int ++XButtonEvent_state (XButtonEvent *i) + { + return(i->state); + } + +-void set_XButtonEvent_state(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_state (XButtonEvent *i, int j) + { + i->state = j; + } + +-int XButtonEvent_y_root(i) +-XButtonEvent* i; ++int ++XButtonEvent_y_root (XButtonEvent *i) + { + return(i->y_root); + } + +-void set_XButtonEvent_y_root(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_y_root (XButtonEvent *i, int j) + { + i->y_root = j; + } + +-int XButtonEvent_x_root(i) +-XButtonEvent* i; ++int ++XButtonEvent_x_root (XButtonEvent *i) + { + return(i->x_root); + } + +-void set_XButtonEvent_x_root(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_x_root (XButtonEvent *i, int j) + { + i->x_root = j; + } + +-int XButtonEvent_y(i) +-XButtonEvent* i; ++int ++XButtonEvent_y (XButtonEvent *i) + { + return(i->y); + } + +-void set_XButtonEvent_y(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_y (XButtonEvent *i, int j) + { + i->y = j; + } + +-int XButtonEvent_x(i) +-XButtonEvent* i; ++int ++XButtonEvent_x (XButtonEvent *i) + { + return(i->x); + } + +-void set_XButtonEvent_x(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_x (XButtonEvent *i, int j) + { + i->x = j; + } + +-int XButtonEvent_time(i) +-XButtonEvent* i; ++int ++XButtonEvent_time (XButtonEvent *i) + { + return(i->time); + } + +-void set_XButtonEvent_time(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_time (XButtonEvent *i, int j) + { + i->time = j; + } + +-int XButtonEvent_subwindow(i) +-XButtonEvent* i; ++int ++XButtonEvent_subwindow (XButtonEvent *i) + { + return(i->subwindow); + } + +-void set_XButtonEvent_subwindow(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_subwindow (XButtonEvent *i, int j) + { + i->subwindow = j; + } + +-int XButtonEvent_root(i) +-XButtonEvent* i; ++int ++XButtonEvent_root (XButtonEvent *i) + { + return(i->root); + } + +-void set_XButtonEvent_root(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_root (XButtonEvent *i, int j) + { + i->root = j; + } + +-int XButtonEvent_window(i) +-XButtonEvent* i; ++int ++XButtonEvent_window (XButtonEvent *i) + { + return(i->window); + } + +-void set_XButtonEvent_window(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_window (XButtonEvent *i, int j) + { + i->window = j; + } + +-long XButtonEvent_display(i) +-XButtonEvent* i; ++long ++XButtonEvent_display (XButtonEvent *i) + { + return((long) i->display); + } + +-void set_XButtonEvent_display(i, j) +-XButtonEvent* i; +-long j; ++void ++set_XButtonEvent_display (XButtonEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XButtonEvent_send_event(i) +-XButtonEvent* i; ++int ++XButtonEvent_send_event (XButtonEvent *i) + { + return(i->send_event); + } + +-void set_XButtonEvent_send_event(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_send_event (XButtonEvent *i, int j) + { + i->send_event = j; + } + +-int XButtonEvent_serial(i) +-XButtonEvent* i; ++int ++XButtonEvent_serial (XButtonEvent *i) + { + return(i->serial); + } + +-void set_XButtonEvent_serial(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_serial (XButtonEvent *i, int j) + { + i->serial = j; + } + +-int XButtonEvent_type(i) +-XButtonEvent* i; ++int ++XButtonEvent_type (XButtonEvent *i) + { + return(i->type); + } + +-void set_XButtonEvent_type(i, j) +-XButtonEvent* i; +-int j; ++void ++set_XButtonEvent_type (XButtonEvent *i, int j) + { + i->type = j; + } +@@ -431,201 +402,187 @@ int j; + + /********* XMotionEvent functions *****/ + +-long make_XMotionEvent (){ ++long ++make_XMotionEvent (void){ + return ((long) calloc(1, sizeof(XMotionEvent))); + } + +-int XMotionEvent_same_screen(i) +-XMotionEvent* i; ++int ++XMotionEvent_same_screen (XMotionEvent *i) + { + return(i->same_screen); + } + +-void set_XMotionEvent_same_screen(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_same_screen (XMotionEvent *i, int j) + { + i->same_screen = j; + } + +-char XMotionEvent_is_hint(i) +-XMotionEvent* i; ++char ++XMotionEvent_is_hint (XMotionEvent *i) + { + return(i->is_hint); + } + +-void set_XMotionEvent_is_hint(i, j) +-XMotionEvent* i; +-char j; ++void ++set_XMotionEvent_is_hint (XMotionEvent *i, int j) + { + i->is_hint = j; + } + +-int XMotionEvent_state(i) +-XMotionEvent* i; ++int ++XMotionEvent_state (XMotionEvent *i) + { + return(i->state); + } + +-void set_XMotionEvent_state(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_state (XMotionEvent *i, int j) + { + i->state = j; + } + +-int XMotionEvent_y_root(i) +-XMotionEvent* i; ++int ++XMotionEvent_y_root (XMotionEvent *i) + { + return(i->y_root); + } + +-void set_XMotionEvent_y_root(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_y_root (XMotionEvent *i, int j) + { + i->y_root = j; + } + +-int XMotionEvent_x_root(i) +-XMotionEvent* i; ++int ++XMotionEvent_x_root (XMotionEvent *i) + { + return(i->x_root); + } + +-void set_XMotionEvent_x_root(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_x_root (XMotionEvent *i, int j) + { + i->x_root = j; + } + +-int XMotionEvent_y(i) +-XMotionEvent* i; ++int ++XMotionEvent_y (XMotionEvent *i) + { + return(i->y); + } + +-void set_XMotionEvent_y(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_y (XMotionEvent *i, int j) + { + i->y = j; + } + +-int XMotionEvent_x(i) +-XMotionEvent* i; ++int ++XMotionEvent_x (XMotionEvent *i) + { + return(i->x); + } + +-void set_XMotionEvent_x(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_x (XMotionEvent *i, int j) + { + i->x = j; + } + +-int XMotionEvent_time(i) +-XMotionEvent* i; ++int ++XMotionEvent_time (XMotionEvent *i) + { + return(i->time); + } + +-void set_XMotionEvent_time(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_time (XMotionEvent *i, int j) + { + i->time = j; + } + +-int XMotionEvent_subwindow(i) +-XMotionEvent* i; ++int ++XMotionEvent_subwindow (XMotionEvent *i) + { + return(i->subwindow); + } + +-void set_XMotionEvent_subwindow(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_subwindow (XMotionEvent *i, int j) + { + i->subwindow = j; + } + +-int XMotionEvent_root(i) +-XMotionEvent* i; ++int ++XMotionEvent_root (XMotionEvent *i) + { + return(i->root); + } + +-void set_XMotionEvent_root(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_root (XMotionEvent *i, int j) + { + i->root = j; + } + +-int XMotionEvent_window(i) +-XMotionEvent* i; ++int ++XMotionEvent_window (XMotionEvent *i) + { + return(i->window); + } + +-void set_XMotionEvent_window(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_window (XMotionEvent *i, int j) + { + i->window = j; + } + +-long XMotionEvent_display(i) +-XMotionEvent* i; ++long ++XMotionEvent_display (XMotionEvent *i) + { + return((long) i->display); + } + +-void set_XMotionEvent_display(i, j) +-XMotionEvent* i; +-long j; ++void ++set_XMotionEvent_display (XMotionEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XMotionEvent_send_event(i) +-XMotionEvent* i; ++int ++XMotionEvent_send_event (XMotionEvent *i) + { + return(i->send_event); + } + +-void set_XMotionEvent_send_event(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_send_event (XMotionEvent *i, int j) + { + i->send_event = j; + } + +-int XMotionEvent_serial(i) +-XMotionEvent* i; ++int ++XMotionEvent_serial (XMotionEvent *i) + { + return(i->serial); + } + +-void set_XMotionEvent_serial(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_serial (XMotionEvent *i, int j) + { + i->serial = j; + } + +-int XMotionEvent_type(i) +-XMotionEvent* i; ++int ++XMotionEvent_type (XMotionEvent *i) + { + return(i->type); + } + +-void set_XMotionEvent_type(i, j) +-XMotionEvent* i; +-int j; ++void ++set_XMotionEvent_type (XMotionEvent *i, int j) + { + i->type = j; + } +@@ -633,227 +590,211 @@ int j; + + /********* XCrossingEvent functions *****/ + +-long make_XCrossingEvent (){ ++long ++make_XCrossingEvent (void){ + return ((long) calloc(1, sizeof(XCrossingEvent))); + } + +-int XCrossingEvent_state(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_state (XCrossingEvent *i) + { + return(i->state); + } + +-void set_XCrossingEvent_state(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_state (XCrossingEvent *i, int j) + { + i->state = j; + } + +-int XCrossingEvent_focus(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_focus (XCrossingEvent *i) + { + return(i->focus); + } + +-void set_XCrossingEvent_focus(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_focus (XCrossingEvent *i, int j) + { + i->focus = j; + } + +-int XCrossingEvent_same_screen(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_same_screen (XCrossingEvent *i) + { + return(i->same_screen); + } + +-void set_XCrossingEvent_same_screen(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_same_screen (XCrossingEvent *i, int j) + { + i->same_screen = j; + } + +-int XCrossingEvent_detail(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_detail (XCrossingEvent *i) + { + return(i->detail); + } + +-void set_XCrossingEvent_detail(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_detail (XCrossingEvent *i, int j) + { + i->detail = j; + } + +-int XCrossingEvent_mode(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_mode (XCrossingEvent *i) + { + return(i->mode); + } + +-void set_XCrossingEvent_mode(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_mode (XCrossingEvent *i, int j) + { + i->mode = j; + } + +-int XCrossingEvent_y_root(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_y_root (XCrossingEvent *i) + { + return(i->y_root); + } + +-void set_XCrossingEvent_y_root(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_y_root (XCrossingEvent *i, int j) + { + i->y_root = j; + } + +-int XCrossingEvent_x_root(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_x_root (XCrossingEvent *i) + { + return(i->x_root); + } + +-void set_XCrossingEvent_x_root(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_x_root (XCrossingEvent *i, int j) + { + i->x_root = j; + } + +-int XCrossingEvent_y(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_y (XCrossingEvent *i) + { + return(i->y); + } + +-void set_XCrossingEvent_y(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_y (XCrossingEvent *i, int j) + { + i->y = j; + } + +-int XCrossingEvent_x(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_x (XCrossingEvent *i) + { + return(i->x); + } + +-void set_XCrossingEvent_x(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_x (XCrossingEvent *i, int j) + { + i->x = j; + } + +-int XCrossingEvent_time(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_time (XCrossingEvent *i) + { + return(i->time); + } + +-void set_XCrossingEvent_time(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_time (XCrossingEvent *i, int j) + { + i->time = j; + } + +-int XCrossingEvent_subwindow(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_subwindow (XCrossingEvent *i) + { + return(i->subwindow); + } + +-void set_XCrossingEvent_subwindow(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_subwindow (XCrossingEvent *i, int j) + { + i->subwindow = j; + } + +-int XCrossingEvent_root(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_root (XCrossingEvent *i) + { + return(i->root); + } + +-void set_XCrossingEvent_root(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_root (XCrossingEvent *i, int j) + { + i->root = j; + } + +-int XCrossingEvent_window(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_window (XCrossingEvent *i) + { + return(i->window); + } + +-void set_XCrossingEvent_window(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_window (XCrossingEvent *i, int j) + { + i->window = j; + } + +-long XCrossingEvent_display(i) +-XCrossingEvent* i; ++long ++XCrossingEvent_display (XCrossingEvent *i) + { + return((long) i->display); + } + +-void set_XCrossingEvent_display(i, j) +-XCrossingEvent* i; +-long j; ++void ++set_XCrossingEvent_display (XCrossingEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XCrossingEvent_send_event(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_send_event (XCrossingEvent *i) + { + return(i->send_event); + } + +-void set_XCrossingEvent_send_event(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_send_event (XCrossingEvent *i, int j) + { + i->send_event = j; + } + +-int XCrossingEvent_serial(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_serial (XCrossingEvent *i) + { + return(i->serial); + } + +-void set_XCrossingEvent_serial(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_serial (XCrossingEvent *i, int j) + { + i->serial = j; + } + +-int XCrossingEvent_type(i) +-XCrossingEvent* i; ++int ++XCrossingEvent_type (XCrossingEvent *i) + { + return(i->type); + } + +-void set_XCrossingEvent_type(i, j) +-XCrossingEvent* i; +-int j; ++void ++set_XCrossingEvent_type (XCrossingEvent *i, int j) + { + i->type = j; + } +@@ -861,97 +802,91 @@ int j; + + /********* XFocusChangeEvent functions *****/ + +-long make_XFocusChangeEvent (){ ++long ++make_XFocusChangeEvent (void){ + return ((long) calloc(1, sizeof(XFocusChangeEvent))); + } + +-int XFocusChangeEvent_detail(i) +-XFocusChangeEvent* i; ++int ++XFocusChangeEvent_detail (XFocusChangeEvent *i) + { + return(i->detail); + } + +-void set_XFocusChangeEvent_detail(i, j) +-XFocusChangeEvent* i; +-int j; ++void ++set_XFocusChangeEvent_detail (XFocusChangeEvent *i, int j) + { + i->detail = j; + } + +-int XFocusChangeEvent_mode(i) +-XFocusChangeEvent* i; ++int ++XFocusChangeEvent_mode (XFocusChangeEvent *i) + { + return(i->mode); + } + +-void set_XFocusChangeEvent_mode(i, j) +-XFocusChangeEvent* i; +-int j; ++void ++set_XFocusChangeEvent_mode (XFocusChangeEvent *i, int j) + { + i->mode = j; + } + +-int XFocusChangeEvent_window(i) +-XFocusChangeEvent* i; ++int ++XFocusChangeEvent_window (XFocusChangeEvent *i) + { + return(i->window); + } + +-void set_XFocusChangeEvent_window(i, j) +-XFocusChangeEvent* i; +-int j; ++void ++set_XFocusChangeEvent_window (XFocusChangeEvent *i, int j) + { + i->window = j; + } + +-long XFocusChangeEvent_display(i) +-XFocusChangeEvent* i; ++long ++XFocusChangeEvent_display (XFocusChangeEvent *i) + { + return((long) i->display); + } + +-void set_XFocusChangeEvent_display(i, j) +-XFocusChangeEvent* i; +-long j; ++void ++set_XFocusChangeEvent_display (XFocusChangeEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XFocusChangeEvent_send_event(i) +-XFocusChangeEvent* i; ++int ++XFocusChangeEvent_send_event (XFocusChangeEvent *i) + { + return(i->send_event); + } + +-void set_XFocusChangeEvent_send_event(i, j) +-XFocusChangeEvent* i; +-int j; ++void ++set_XFocusChangeEvent_send_event (XFocusChangeEvent *i, int j) + { + i->send_event = j; + } + +-int XFocusChangeEvent_serial(i) +-XFocusChangeEvent* i; ++int ++XFocusChangeEvent_serial (XFocusChangeEvent *i) + { + return(i->serial); + } + +-void set_XFocusChangeEvent_serial(i, j) +-XFocusChangeEvent* i; +-int j; ++void ++set_XFocusChangeEvent_serial (XFocusChangeEvent *i, int j) + { + i->serial = j; + } + +-int XFocusChangeEvent_type(i) +-XFocusChangeEvent* i; ++int ++XFocusChangeEvent_type (XFocusChangeEvent *i) + { + return(i->type); + } + +-void set_XFocusChangeEvent_type(i, j) +-XFocusChangeEvent* i; +-int j; ++void ++set_XFocusChangeEvent_type (XFocusChangeEvent *i, int j) + { + i->type = j; + } +@@ -959,76 +894,72 @@ int j; + + /********* XKeymapEvent functions *****/ + +-long make_XKeymapEvent (){ ++long ++make_XKeymapEvent (void){ + return ((long) calloc(1, sizeof(XKeymapEvent))); + } + +-char* XKeymapEvent_key_vector(i) +-XKeymapEvent* i; ++char * ++XKeymapEvent_key_vector (XKeymapEvent *i) + { + return(i->key_vector); + } +-int XKeymapEvent_window(i) +-XKeymapEvent* i; ++int ++XKeymapEvent_window (XKeymapEvent *i) + { + return(i->window); + } + +-void set_XKeymapEvent_window(i, j) +-XKeymapEvent* i; +-int j; ++void ++set_XKeymapEvent_window (XKeymapEvent *i, int j) + { + i->window = j; + } + +-long XKeymapEvent_display(i) +-XKeymapEvent* i; ++long ++XKeymapEvent_display (XKeymapEvent *i) + { + return((long) i->display); + } + +-void set_XKeymapEvent_display(i, j) +-XKeymapEvent* i; +-long j; ++void ++set_XKeymapEvent_display (XKeymapEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XKeymapEvent_send_event(i) +-XKeymapEvent* i; ++int ++XKeymapEvent_send_event (XKeymapEvent *i) + { + return(i->send_event); + } + +-void set_XKeymapEvent_send_event(i, j) +-XKeymapEvent* i; +-int j; ++void ++set_XKeymapEvent_send_event (XKeymapEvent *i, int j) + { + i->send_event = j; + } + +-int XKeymapEvent_serial(i) +-XKeymapEvent* i; ++int ++XKeymapEvent_serial (XKeymapEvent *i) + { + return(i->serial); + } + +-void set_XKeymapEvent_serial(i, j) +-XKeymapEvent* i; +-int j; ++void ++set_XKeymapEvent_serial (XKeymapEvent *i, int j) + { + i->serial = j; + } + +-int XKeymapEvent_type(i) +-XKeymapEvent* i; ++int ++XKeymapEvent_type (XKeymapEvent *i) + { + return(i->type); + } + +-void set_XKeymapEvent_type(i, j) +-XKeymapEvent* i; +-int j; ++void ++set_XKeymapEvent_type (XKeymapEvent *i, int j) + { + i->type = j; + } +@@ -1036,136 +967,127 @@ int j; + + /********* XExposeEvent functions *****/ + +-long make_XExposeEvent (){ ++long ++make_XExposeEvent (void){ + return ((long) calloc(1, sizeof(XExposeEvent))); + } + +-int XExposeEvent_count(i) +-XExposeEvent* i; ++int ++XExposeEvent_count (XExposeEvent *i) + { + return(i->count); + } + +-void set_XExposeEvent_count(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_count (XExposeEvent *i, int j) + { + i->count = j; + } + +-int XExposeEvent_height(i) +-XExposeEvent* i; ++int ++XExposeEvent_height (XExposeEvent *i) + { + return(i->height); + } + +-void set_XExposeEvent_height(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_height (XExposeEvent *i, int j) + { + i->height = j; + } + +-int XExposeEvent_width(i) +-XExposeEvent* i; ++int ++XExposeEvent_width (XExposeEvent *i) + { + return(i->width); + } + +-void set_XExposeEvent_width(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_width (XExposeEvent *i, int j) + { + i->width = j; + } + +-int XExposeEvent_y(i) +-XExposeEvent* i; ++int ++XExposeEvent_y (XExposeEvent *i) + { + return(i->y); + } + +-void set_XExposeEvent_y(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_y (XExposeEvent *i, int j) + { + i->y = j; + } + +-int XExposeEvent_x(i) +-XExposeEvent* i; ++int ++XExposeEvent_x (XExposeEvent *i) + { + return(i->x); + } + +-void set_XExposeEvent_x(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_x (XExposeEvent *i, int j) + { + i->x = j; + } + +-int XExposeEvent_window(i) +-XExposeEvent* i; ++int ++XExposeEvent_window (XExposeEvent *i) + { + return(i->window); + } + +-void set_XExposeEvent_window(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_window (XExposeEvent *i, int j) + { + i->window = j; + } + +-long XExposeEvent_display(i) +-XExposeEvent* i; ++long ++XExposeEvent_display (XExposeEvent *i) + { + return((long) i->display); + } + +-void set_XExposeEvent_display(i, j) +-XExposeEvent* i; +-long j; ++void ++set_XExposeEvent_display (XExposeEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XExposeEvent_send_event(i) +-XExposeEvent* i; ++int ++XExposeEvent_send_event (XExposeEvent *i) + { + return(i->send_event); + } + +-void set_XExposeEvent_send_event(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_send_event (XExposeEvent *i, int j) + { + i->send_event = j; + } + +-int XExposeEvent_serial(i) +-XExposeEvent* i; ++int ++XExposeEvent_serial (XExposeEvent *i) + { + return(i->serial); + } + +-void set_XExposeEvent_serial(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_serial (XExposeEvent *i, int j) + { + i->serial = j; + } + +-int XExposeEvent_type(i) +-XExposeEvent* i; ++int ++XExposeEvent_type (XExposeEvent *i) + { + return(i->type); + } + +-void set_XExposeEvent_type(i, j) +-XExposeEvent* i; +-int j; ++void ++set_XExposeEvent_type (XExposeEvent *i, int j) + { + i->type = j; + } +@@ -1173,162 +1095,151 @@ int j; + + /********* XGraphicsExposeEvent functions *****/ + +-long make_XGraphicsExposeEvent (){ ++long ++make_XGraphicsExposeEvent (void){ + return ((long) calloc(1, sizeof(XGraphicsExposeEvent))); + } + +-int XGraphicsExposeEvent_minor_code(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_minor_code (XGraphicsExposeEvent *i) + { + return(i->minor_code); + } + +-void set_XGraphicsExposeEvent_minor_code(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_minor_code (XGraphicsExposeEvent *i, int j) + { + i->minor_code = j; + } + +-int XGraphicsExposeEvent_major_code(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_major_code (XGraphicsExposeEvent *i) + { + return(i->major_code); + } + +-void set_XGraphicsExposeEvent_major_code(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_major_code (XGraphicsExposeEvent *i, int j) + { + i->major_code = j; + } + +-int XGraphicsExposeEvent_count(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_count (XGraphicsExposeEvent *i) + { + return(i->count); + } + +-void set_XGraphicsExposeEvent_count(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_count (XGraphicsExposeEvent *i, int j) + { + i->count = j; + } + +-int XGraphicsExposeEvent_height(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_height (XGraphicsExposeEvent *i) + { + return(i->height); + } + +-void set_XGraphicsExposeEvent_height(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_height (XGraphicsExposeEvent *i, int j) + { + i->height = j; + } + +-int XGraphicsExposeEvent_width(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_width (XGraphicsExposeEvent *i) + { + return(i->width); + } + +-void set_XGraphicsExposeEvent_width(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_width (XGraphicsExposeEvent *i, int j) + { + i->width = j; + } + +-int XGraphicsExposeEvent_y(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_y (XGraphicsExposeEvent *i) + { + return(i->y); + } + +-void set_XGraphicsExposeEvent_y(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_y (XGraphicsExposeEvent *i, int j) + { + i->y = j; + } + +-int XGraphicsExposeEvent_x(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_x (XGraphicsExposeEvent *i) + { + return(i->x); + } + +-void set_XGraphicsExposeEvent_x(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_x (XGraphicsExposeEvent *i, int j) + { + i->x = j; + } + +-Drawable XGraphicsExposeEvent_drawable(i) +-XGraphicsExposeEvent* i; ++Drawable ++XGraphicsExposeEvent_drawable (XGraphicsExposeEvent *i) + { + return(i->drawable); + } + +-void set_XGraphicsExposeEvent_drawable(i, j) +-XGraphicsExposeEvent* i; +-Drawable j; ++void ++set_XGraphicsExposeEvent_drawable (XGraphicsExposeEvent *i, Drawable j) + { + i->drawable = j; + } + +-long XGraphicsExposeEvent_display(i) +-XGraphicsExposeEvent* i; ++long ++XGraphicsExposeEvent_display (XGraphicsExposeEvent *i) + { + return((long) i->display); + } + +-void set_XGraphicsExposeEvent_display(i, j) +-XGraphicsExposeEvent* i; +-long j; ++void ++set_XGraphicsExposeEvent_display (XGraphicsExposeEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XGraphicsExposeEvent_send_event(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_send_event (XGraphicsExposeEvent *i) + { + return(i->send_event); + } + +-void set_XGraphicsExposeEvent_send_event(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_send_event (XGraphicsExposeEvent *i, int j) + { + i->send_event = j; + } + +-int XGraphicsExposeEvent_serial(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_serial (XGraphicsExposeEvent *i) + { + return(i->serial); + } + +-void set_XGraphicsExposeEvent_serial(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_serial (XGraphicsExposeEvent *i, int j) + { + i->serial = j; + } + +-int XGraphicsExposeEvent_type(i) +-XGraphicsExposeEvent* i; ++int ++XGraphicsExposeEvent_type (XGraphicsExposeEvent *i) + { + return(i->type); + } + +-void set_XGraphicsExposeEvent_type(i, j) +-XGraphicsExposeEvent* i; +-int j; ++void ++set_XGraphicsExposeEvent_type (XGraphicsExposeEvent *i, int j) + { + i->type = j; + } +@@ -1336,97 +1247,91 @@ int j; + + /********* XNoExposeEvent functions *****/ + +-long make_XNoExposeEvent (){ ++long ++make_XNoExposeEvent (void){ + return ((long) calloc(1, sizeof(XNoExposeEvent))); + } + +-int XNoExposeEvent_minor_code(i) +-XNoExposeEvent* i; ++int ++XNoExposeEvent_minor_code (XNoExposeEvent *i) + { + return(i->minor_code); + } + +-void set_XNoExposeEvent_minor_code(i, j) +-XNoExposeEvent* i; +-int j; ++void ++set_XNoExposeEvent_minor_code (XNoExposeEvent *i, int j) + { + i->minor_code = j; + } + +-int XNoExposeEvent_major_code(i) +-XNoExposeEvent* i; ++int ++XNoExposeEvent_major_code (XNoExposeEvent *i) + { + return(i->major_code); + } + +-void set_XNoExposeEvent_major_code(i, j) +-XNoExposeEvent* i; +-int j; ++void ++set_XNoExposeEvent_major_code (XNoExposeEvent *i, int j) + { + i->major_code = j; + } + +-Drawable XNoExposeEvent_drawable(i) +-XNoExposeEvent* i; ++Drawable ++XNoExposeEvent_drawable (XNoExposeEvent *i) + { + return(i->drawable); + } + +-void set_XNoExposeEvent_drawable(i, j) +-XNoExposeEvent* i; +-Drawable j; ++void ++set_XNoExposeEvent_drawable (XNoExposeEvent *i, Drawable j) + { + i->drawable = j; + } + +-long XNoExposeEvent_display(i) +-XNoExposeEvent* i; ++long ++XNoExposeEvent_display (XNoExposeEvent *i) + { + return((long) i->display); + } + +-void set_XNoExposeEvent_display(i, j) +-XNoExposeEvent* i; +-long j; ++void ++set_XNoExposeEvent_display (XNoExposeEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XNoExposeEvent_send_event(i) +-XNoExposeEvent* i; ++int ++XNoExposeEvent_send_event (XNoExposeEvent *i) + { + return(i->send_event); + } + +-void set_XNoExposeEvent_send_event(i, j) +-XNoExposeEvent* i; +-int j; ++void ++set_XNoExposeEvent_send_event (XNoExposeEvent *i, int j) + { + i->send_event = j; + } + +-int XNoExposeEvent_serial(i) +-XNoExposeEvent* i; ++int ++XNoExposeEvent_serial (XNoExposeEvent *i) + { + return(i->serial); + } + +-void set_XNoExposeEvent_serial(i, j) +-XNoExposeEvent* i; +-int j; ++void ++set_XNoExposeEvent_serial (XNoExposeEvent *i, int j) + { + i->serial = j; + } + +-int XNoExposeEvent_type(i) +-XNoExposeEvent* i; ++int ++XNoExposeEvent_type (XNoExposeEvent *i) + { + return(i->type); + } + +-void set_XNoExposeEvent_type(i, j) +-XNoExposeEvent* i; +-int j; ++void ++set_XNoExposeEvent_type (XNoExposeEvent *i, int j) + { + i->type = j; + } +@@ -1434,84 +1339,79 @@ int j; + + /********* XVisibilityEvent functions *****/ + +-long make_XVisibilityEvent (){ ++long ++make_XVisibilityEvent (void){ + return ((long) calloc(1, sizeof(XVisibilityEvent))); + } + +-int XVisibilityEvent_state(i) +-XVisibilityEvent* i; ++int ++XVisibilityEvent_state (XVisibilityEvent *i) + { + return(i->state); + } + +-void set_XVisibilityEvent_state(i, j) +-XVisibilityEvent* i; +-int j; ++void ++set_XVisibilityEvent_state (XVisibilityEvent *i, int j) + { + i->state = j; + } + +-int XVisibilityEvent_window(i) +-XVisibilityEvent* i; ++int ++XVisibilityEvent_window (XVisibilityEvent *i) + { + return(i->window); + } + +-void set_XVisibilityEvent_window(i, j) +-XVisibilityEvent* i; +-int j; ++void ++set_XVisibilityEvent_window (XVisibilityEvent *i, int j) + { + i->window = j; + } + +-long XVisibilityEvent_display(i) +-XVisibilityEvent* i; ++long ++XVisibilityEvent_display (XVisibilityEvent *i) + { + return((long) i->display); + } + +-void set_XVisibilityEvent_display(i, j) +-XVisibilityEvent* i; +-long j; ++void ++set_XVisibilityEvent_display (XVisibilityEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XVisibilityEvent_send_event(i) +-XVisibilityEvent* i; ++int ++XVisibilityEvent_send_event (XVisibilityEvent *i) + { + return(i->send_event); + } + +-void set_XVisibilityEvent_send_event(i, j) +-XVisibilityEvent* i; +-int j; ++void ++set_XVisibilityEvent_send_event (XVisibilityEvent *i, int j) + { + i->send_event = j; + } + +-int XVisibilityEvent_serial(i) +-XVisibilityEvent* i; ++int ++XVisibilityEvent_serial (XVisibilityEvent *i) + { + return(i->serial); + } + +-void set_XVisibilityEvent_serial(i, j) +-XVisibilityEvent* i; +-int j; ++void ++set_XVisibilityEvent_serial (XVisibilityEvent *i, int j) + { + i->serial = j; + } + +-int XVisibilityEvent_type(i) +-XVisibilityEvent* i; ++int ++XVisibilityEvent_type (XVisibilityEvent *i) + { + return(i->type); + } + +-void set_XVisibilityEvent_type(i, j) +-XVisibilityEvent* i; +-int j; ++void ++set_XVisibilityEvent_type (XVisibilityEvent *i, int j) + { + i->type = j; + } +@@ -1519,162 +1419,151 @@ int j; + + /********* XCreateWindowEvent functions *****/ + +-long make_XCreateWindowEvent (){ ++long ++make_XCreateWindowEvent (void){ + return ((long) calloc(1, sizeof(XCreateWindowEvent))); + } + +-int XCreateWindowEvent_override_redirect(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_override_redirect (XCreateWindowEvent *i) + { + return(i->override_redirect); + } + +-void set_XCreateWindowEvent_override_redirect(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_override_redirect (XCreateWindowEvent *i, int j) + { + i->override_redirect = j; + } + +-int XCreateWindowEvent_border_width(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_border_width (XCreateWindowEvent *i) + { + return(i->border_width); + } + +-void set_XCreateWindowEvent_border_width(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_border_width (XCreateWindowEvent *i, int j) + { + i->border_width = j; + } + +-int XCreateWindowEvent_height(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_height (XCreateWindowEvent *i) + { + return(i->height); + } + +-void set_XCreateWindowEvent_height(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_height (XCreateWindowEvent *i, int j) + { + i->height = j; + } + +-int XCreateWindowEvent_width(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_width (XCreateWindowEvent *i) + { + return(i->width); + } + +-void set_XCreateWindowEvent_width(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_width (XCreateWindowEvent *i, int j) + { + i->width = j; + } + +-int XCreateWindowEvent_y(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_y (XCreateWindowEvent *i) + { + return(i->y); + } + +-void set_XCreateWindowEvent_y(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_y (XCreateWindowEvent *i, int j) + { + i->y = j; + } + +-int XCreateWindowEvent_x(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_x (XCreateWindowEvent *i) + { + return(i->x); + } + +-void set_XCreateWindowEvent_x(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_x (XCreateWindowEvent *i, int j) + { + i->x = j; + } + +-int XCreateWindowEvent_window(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_window (XCreateWindowEvent *i) + { + return(i->window); + } + +-void set_XCreateWindowEvent_window(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_window (XCreateWindowEvent *i, int j) + { + i->window = j; + } + +-int XCreateWindowEvent_parent(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_parent (XCreateWindowEvent *i) + { + return(i->parent); + } + +-void set_XCreateWindowEvent_parent(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_parent (XCreateWindowEvent *i, int j) + { + i->parent = j; + } + +-long XCreateWindowEvent_display(i) +-XCreateWindowEvent* i; ++long ++XCreateWindowEvent_display (XCreateWindowEvent *i) + { + return((long) i->display); + } + +-void set_XCreateWindowEvent_display(i, j) +-XCreateWindowEvent* i; +-long j; ++void ++set_XCreateWindowEvent_display (XCreateWindowEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XCreateWindowEvent_send_event(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_send_event (XCreateWindowEvent *i) + { + return(i->send_event); + } + +-void set_XCreateWindowEvent_send_event(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_send_event (XCreateWindowEvent *i, int j) + { + i->send_event = j; + } + +-int XCreateWindowEvent_serial(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_serial (XCreateWindowEvent *i) + { + return(i->serial); + } + +-void set_XCreateWindowEvent_serial(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_serial (XCreateWindowEvent *i, int j) + { + i->serial = j; + } + +-int XCreateWindowEvent_type(i) +-XCreateWindowEvent* i; ++int ++XCreateWindowEvent_type (XCreateWindowEvent *i) + { + return(i->type); + } + +-void set_XCreateWindowEvent_type(i, j) +-XCreateWindowEvent* i; +-int j; ++void ++set_XCreateWindowEvent_type (XCreateWindowEvent *i, int j) + { + i->type = j; + } +@@ -1682,84 +1571,79 @@ int j; + + /********* XDestroyWindowEvent functions *****/ + +-long make_XDestroyWindowEvent (){ ++long ++make_XDestroyWindowEvent (void){ + return ((long) calloc(1, sizeof(XDestroyWindowEvent))); + } + +-int XDestroyWindowEvent_window(i) +-XDestroyWindowEvent* i; ++int ++XDestroyWindowEvent_window (XDestroyWindowEvent *i) + { + return(i->window); + } + +-void set_XDestroyWindowEvent_window(i, j) +-XDestroyWindowEvent* i; +-int j; ++void ++set_XDestroyWindowEvent_window (XDestroyWindowEvent *i, int j) + { + i->window = j; + } + +-int XDestroyWindowEvent_event(i) +-XDestroyWindowEvent* i; ++int ++XDestroyWindowEvent_event (XDestroyWindowEvent *i) + { + return(i->event); + } + +-void set_XDestroyWindowEvent_event(i, j) +-XDestroyWindowEvent* i; +-int j; ++void ++set_XDestroyWindowEvent_event (XDestroyWindowEvent *i, int j) + { + i->event = j; + } + +-long XDestroyWindowEvent_display(i) +-XDestroyWindowEvent* i; ++long ++XDestroyWindowEvent_display (XDestroyWindowEvent *i) + { + return((long) i->display); + } + +-void set_XDestroyWindowEvent_display(i, j) +-XDestroyWindowEvent* i; +-long j; ++void ++set_XDestroyWindowEvent_display (XDestroyWindowEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XDestroyWindowEvent_send_event(i) +-XDestroyWindowEvent* i; ++int ++XDestroyWindowEvent_send_event (XDestroyWindowEvent *i) + { + return(i->send_event); + } + +-void set_XDestroyWindowEvent_send_event(i, j) +-XDestroyWindowEvent* i; +-int j; ++void ++set_XDestroyWindowEvent_send_event (XDestroyWindowEvent *i, int j) + { + i->send_event = j; + } + +-int XDestroyWindowEvent_serial(i) +-XDestroyWindowEvent* i; ++int ++XDestroyWindowEvent_serial (XDestroyWindowEvent *i) + { + return(i->serial); + } + +-void set_XDestroyWindowEvent_serial(i, j) +-XDestroyWindowEvent* i; +-int j; ++void ++set_XDestroyWindowEvent_serial (XDestroyWindowEvent *i, int j) + { + i->serial = j; + } + +-int XDestroyWindowEvent_type(i) +-XDestroyWindowEvent* i; ++int ++XDestroyWindowEvent_type (XDestroyWindowEvent *i) + { + return(i->type); + } + +-void set_XDestroyWindowEvent_type(i, j) +-XDestroyWindowEvent* i; +-int j; ++void ++set_XDestroyWindowEvent_type (XDestroyWindowEvent *i, int j) + { + i->type = j; + } +@@ -1767,97 +1651,91 @@ int j; + + /********* XUnmapEvent functions *****/ + +-long make_XUnmapEvent (){ ++long ++make_XUnmapEvent (void){ + return ((long) calloc(1, sizeof(XUnmapEvent))); + } + +-int XUnmapEvent_from_configure(i) +-XUnmapEvent* i; ++int ++XUnmapEvent_from_configure (XUnmapEvent *i) + { + return(i->from_configure); + } + +-void set_XUnmapEvent_from_configure(i, j) +-XUnmapEvent* i; +-int j; ++void ++set_XUnmapEvent_from_configure (XUnmapEvent *i, int j) + { + i->from_configure = j; + } + +-int XUnmapEvent_window(i) +-XUnmapEvent* i; ++int ++XUnmapEvent_window (XUnmapEvent *i) + { + return(i->window); + } + +-void set_XUnmapEvent_window(i, j) +-XUnmapEvent* i; +-int j; ++void ++set_XUnmapEvent_window (XUnmapEvent *i, int j) + { + i->window = j; + } + +-int XUnmapEvent_event(i) +-XUnmapEvent* i; ++int ++XUnmapEvent_event (XUnmapEvent *i) + { + return(i->event); + } + +-void set_XUnmapEvent_event(i, j) +-XUnmapEvent* i; +-int j; ++void ++set_XUnmapEvent_event (XUnmapEvent *i, int j) + { + i->event = j; + } + +-long XUnmapEvent_display(i) +-XUnmapEvent* i; ++long ++XUnmapEvent_display (XUnmapEvent *i) + { + return((long) i->display); + } + +-void set_XUnmapEvent_display(i, j) +-XUnmapEvent* i; +-long j; ++void ++set_XUnmapEvent_display (XUnmapEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XUnmapEvent_send_event(i) +-XUnmapEvent* i; ++int ++XUnmapEvent_send_event (XUnmapEvent *i) + { + return(i->send_event); + } + +-void set_XUnmapEvent_send_event(i, j) +-XUnmapEvent* i; +-int j; ++void ++set_XUnmapEvent_send_event (XUnmapEvent *i, int j) + { + i->send_event = j; + } + +-int XUnmapEvent_serial(i) +-XUnmapEvent* i; ++int ++XUnmapEvent_serial (XUnmapEvent *i) + { + return(i->serial); + } + +-void set_XUnmapEvent_serial(i, j) +-XUnmapEvent* i; +-int j; ++void ++set_XUnmapEvent_serial (XUnmapEvent *i, int j) + { + i->serial = j; + } + +-int XUnmapEvent_type(i) +-XUnmapEvent* i; ++int ++XUnmapEvent_type (XUnmapEvent *i) + { + return(i->type); + } + +-void set_XUnmapEvent_type(i, j) +-XUnmapEvent* i; +-int j; ++void ++set_XUnmapEvent_type (XUnmapEvent *i, int j) + { + i->type = j; + } +@@ -1865,97 +1743,91 @@ int j; + + /********* XMapEvent functions *****/ + +-long make_XMapEvent (){ ++long ++make_XMapEvent (void){ + return ((long) calloc(1, sizeof(XMapEvent))); + } + +-int XMapEvent_override_redirect(i) +-XMapEvent* i; ++int ++XMapEvent_override_redirect (XMapEvent *i) + { + return(i->override_redirect); + } + +-void set_XMapEvent_override_redirect(i, j) +-XMapEvent* i; +-int j; ++void ++set_XMapEvent_override_redirect (XMapEvent *i, int j) + { + i->override_redirect = j; + } + +-int XMapEvent_window(i) +-XMapEvent* i; ++int ++XMapEvent_window (XMapEvent *i) + { + return(i->window); + } + +-void set_XMapEvent_window(i, j) +-XMapEvent* i; +-int j; ++void ++set_XMapEvent_window (XMapEvent *i, int j) + { + i->window = j; + } + +-int XMapEvent_event(i) +-XMapEvent* i; ++int ++XMapEvent_event (XMapEvent *i) + { + return(i->event); + } + +-void set_XMapEvent_event(i, j) +-XMapEvent* i; +-int j; ++void ++set_XMapEvent_event (XMapEvent *i, int j) + { + i->event = j; + } + +-long XMapEvent_display(i) +-XMapEvent* i; ++long ++XMapEvent_display (XMapEvent *i) + { + return((long) i->display); + } + +-void set_XMapEvent_display(i, j) +-XMapEvent* i; +-long j; ++void ++set_XMapEvent_display (XMapEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XMapEvent_send_event(i) +-XMapEvent* i; ++int ++XMapEvent_send_event (XMapEvent *i) + { + return(i->send_event); + } + +-void set_XMapEvent_send_event(i, j) +-XMapEvent* i; +-int j; ++void ++set_XMapEvent_send_event (XMapEvent *i, int j) + { + i->send_event = j; + } + +-int XMapEvent_serial(i) +-XMapEvent* i; ++int ++XMapEvent_serial (XMapEvent *i) + { + return(i->serial); + } + +-void set_XMapEvent_serial(i, j) +-XMapEvent* i; +-int j; ++void ++set_XMapEvent_serial (XMapEvent *i, int j) + { + i->serial = j; + } + +-int XMapEvent_type(i) +-XMapEvent* i; ++int ++XMapEvent_type (XMapEvent *i) + { + return(i->type); + } + +-void set_XMapEvent_type(i, j) +-XMapEvent* i; +-int j; ++void ++set_XMapEvent_type (XMapEvent *i, int j) + { + i->type = j; + } +@@ -1963,84 +1835,79 @@ int j; + + /********* XMapRequestEvent functions *****/ + +-long make_XMapRequestEvent (){ ++long ++make_XMapRequestEvent (void){ + return ((long) calloc(1, sizeof(XMapRequestEvent))); + } + +-int XMapRequestEvent_window(i) +-XMapRequestEvent* i; ++int ++XMapRequestEvent_window (XMapRequestEvent *i) + { + return(i->window); + } + +-void set_XMapRequestEvent_window(i, j) +-XMapRequestEvent* i; +-int j; ++void ++set_XMapRequestEvent_window (XMapRequestEvent *i, int j) + { + i->window = j; + } + +-int XMapRequestEvent_parent(i) +-XMapRequestEvent* i; ++int ++XMapRequestEvent_parent (XMapRequestEvent *i) + { + return(i->parent); + } + +-void set_XMapRequestEvent_parent(i, j) +-XMapRequestEvent* i; +-int j; ++void ++set_XMapRequestEvent_parent (XMapRequestEvent *i, int j) + { + i->parent = j; + } + +-long XMapRequestEvent_display(i) +-XMapRequestEvent* i; ++long ++XMapRequestEvent_display (XMapRequestEvent *i) + { + return((long) i->display); + } + +-void set_XMapRequestEvent_display(i, j) +-XMapRequestEvent* i; +-long j; ++void ++set_XMapRequestEvent_display (XMapRequestEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XMapRequestEvent_send_event(i) +-XMapRequestEvent* i; ++int ++XMapRequestEvent_send_event (XMapRequestEvent *i) + { + return(i->send_event); + } + +-void set_XMapRequestEvent_send_event(i, j) +-XMapRequestEvent* i; +-int j; ++void ++set_XMapRequestEvent_send_event (XMapRequestEvent *i, int j) + { + i->send_event = j; + } + +-int XMapRequestEvent_serial(i) +-XMapRequestEvent* i; ++int ++XMapRequestEvent_serial (XMapRequestEvent *i) + { + return(i->serial); + } + +-void set_XMapRequestEvent_serial(i, j) +-XMapRequestEvent* i; +-int j; ++void ++set_XMapRequestEvent_serial (XMapRequestEvent *i, int j) + { + i->serial = j; + } + +-int XMapRequestEvent_type(i) +-XMapRequestEvent* i; ++int ++XMapRequestEvent_type (XMapRequestEvent *i) + { + return(i->type); + } + +-void set_XMapRequestEvent_type(i, j) +-XMapRequestEvent* i; +-int j; ++void ++set_XMapRequestEvent_type (XMapRequestEvent *i, int j) + { + i->type = j; + } +@@ -2048,136 +1915,127 @@ int j; + + /********* XReparentEvent functions *****/ + +-long make_XReparentEvent (){ ++long ++make_XReparentEvent (void){ + return ((long) calloc(1, sizeof(XReparentEvent))); + } + +-int XReparentEvent_override_redirect(i) +-XReparentEvent* i; ++int ++XReparentEvent_override_redirect (XReparentEvent *i) + { + return(i->override_redirect); + } + +-void set_XReparentEvent_override_redirect(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_override_redirect (XReparentEvent *i, int j) + { + i->override_redirect = j; + } + +-int XReparentEvent_y(i) +-XReparentEvent* i; ++int ++XReparentEvent_y (XReparentEvent *i) + { + return(i->y); + } + +-void set_XReparentEvent_y(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_y (XReparentEvent *i, int j) + { + i->y = j; + } + +-int XReparentEvent_x(i) +-XReparentEvent* i; ++int ++XReparentEvent_x (XReparentEvent *i) + { + return(i->x); + } + +-void set_XReparentEvent_x(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_x (XReparentEvent *i, int j) + { + i->x = j; + } + +-int XReparentEvent_parent(i) +-XReparentEvent* i; ++int ++XReparentEvent_parent (XReparentEvent *i) + { + return(i->parent); + } + +-void set_XReparentEvent_parent(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_parent (XReparentEvent *i, int j) + { + i->parent = j; + } + +-int XReparentEvent_window(i) +-XReparentEvent* i; ++int ++XReparentEvent_window (XReparentEvent *i) + { + return(i->window); + } + +-void set_XReparentEvent_window(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_window (XReparentEvent *i, int j) + { + i->window = j; + } + +-int XReparentEvent_event(i) +-XReparentEvent* i; ++int ++XReparentEvent_event (XReparentEvent *i) + { + return(i->event); + } + +-void set_XReparentEvent_event(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_event (XReparentEvent *i, int j) + { + i->event = j; + } + +-long XReparentEvent_display(i) +-XReparentEvent* i; ++long ++XReparentEvent_display (XReparentEvent *i) + { + return((long) i->display); + } + +-void set_XReparentEvent_display(i, j) +-XReparentEvent* i; +-long j; ++void ++set_XReparentEvent_display (XReparentEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XReparentEvent_send_event(i) +-XReparentEvent* i; ++int ++XReparentEvent_send_event (XReparentEvent *i) + { + return(i->send_event); + } + +-void set_XReparentEvent_send_event(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_send_event (XReparentEvent *i, int j) + { + i->send_event = j; + } + +-int XReparentEvent_serial(i) +-XReparentEvent* i; ++int ++XReparentEvent_serial (XReparentEvent *i) + { + return(i->serial); + } + +-void set_XReparentEvent_serial(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_serial (XReparentEvent *i, int j) + { + i->serial = j; + } + +-int XReparentEvent_type(i) +-XReparentEvent* i; ++int ++XReparentEvent_type (XReparentEvent *i) + { + return(i->type); + } + +-void set_XReparentEvent_type(i, j) +-XReparentEvent* i; +-int j; ++void ++set_XReparentEvent_type (XReparentEvent *i, int j) + { + i->type = j; + } +@@ -2185,175 +2043,163 @@ int j; + + /********* XConfigureEvent functions *****/ + +-long make_XConfigureEvent (){ ++long ++make_XConfigureEvent (void){ + return ((long) calloc(1, sizeof(XConfigureEvent))); + } + +-int XConfigureEvent_override_redirect(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_override_redirect (XConfigureEvent *i) + { + return(i->override_redirect); + } + +-void set_XConfigureEvent_override_redirect(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_override_redirect (XConfigureEvent *i, int j) + { + i->override_redirect = j; + } + +-int XConfigureEvent_above(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_above (XConfigureEvent *i) + { + return(i->above); + } + +-void set_XConfigureEvent_above(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_above (XConfigureEvent *i, int j) + { + i->above = j; + } + +-int XConfigureEvent_border_width(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_border_width (XConfigureEvent *i) + { + return(i->border_width); + } + +-void set_XConfigureEvent_border_width(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_border_width (XConfigureEvent *i, int j) + { + i->border_width = j; + } + +-int XConfigureEvent_height(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_height (XConfigureEvent *i) + { + return(i->height); + } + +-void set_XConfigureEvent_height(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_height (XConfigureEvent *i, int j) + { + i->height = j; + } + +-int XConfigureEvent_width(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_width (XConfigureEvent *i) + { + return(i->width); + } + +-void set_XConfigureEvent_width(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_width (XConfigureEvent *i, int j) + { + i->width = j; + } + +-int XConfigureEvent_y(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_y (XConfigureEvent *i) + { + return(i->y); + } + +-void set_XConfigureEvent_y(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_y (XConfigureEvent *i, int j) + { + i->y = j; + } + +-int XConfigureEvent_x(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_x (XConfigureEvent *i) + { + return(i->x); + } + +-void set_XConfigureEvent_x(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_x (XConfigureEvent *i, int j) + { + i->x = j; + } + +-int XConfigureEvent_window(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_window (XConfigureEvent *i) + { + return(i->window); + } + +-void set_XConfigureEvent_window(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_window (XConfigureEvent *i, int j) + { + i->window = j; + } + +-int XConfigureEvent_event(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_event (XConfigureEvent *i) + { + return(i->event); + } + +-void set_XConfigureEvent_event(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_event (XConfigureEvent *i, int j) + { + i->event = j; + } + +-long XConfigureEvent_display(i) +-XConfigureEvent* i; ++long ++XConfigureEvent_display (XConfigureEvent *i) + { + return((long) i->display); + } + +-void set_XConfigureEvent_display(i, j) +-XConfigureEvent* i; +-long j; ++void ++set_XConfigureEvent_display (XConfigureEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XConfigureEvent_send_event(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_send_event (XConfigureEvent *i) + { + return(i->send_event); + } + +-void set_XConfigureEvent_send_event(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_send_event (XConfigureEvent *i, int j) + { + i->send_event = j; + } + +-int XConfigureEvent_serial(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_serial (XConfigureEvent *i) + { + return(i->serial); + } + +-void set_XConfigureEvent_serial(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_serial (XConfigureEvent *i, int j) + { + i->serial = j; + } + +-int XConfigureEvent_type(i) +-XConfigureEvent* i; ++int ++XConfigureEvent_type (XConfigureEvent *i) + { + return(i->type); + } + +-void set_XConfigureEvent_type(i, j) +-XConfigureEvent* i; +-int j; ++void ++set_XConfigureEvent_type (XConfigureEvent *i, int j) + { + i->type = j; + } +@@ -2361,110 +2207,103 @@ int j; + + /********* XGravityEvent functions *****/ + +-long make_XGravityEvent (){ ++long ++make_XGravityEvent (void){ + return ((long) calloc(1, sizeof(XGravityEvent))); + } + +-int XGravityEvent_y(i) +-XGravityEvent* i; ++int ++XGravityEvent_y (XGravityEvent *i) + { + return(i->y); + } + +-void set_XGravityEvent_y(i, j) +-XGravityEvent* i; +-int j; ++void ++set_XGravityEvent_y (XGravityEvent *i, int j) + { + i->y = j; + } + +-int XGravityEvent_x(i) +-XGravityEvent* i; ++int ++XGravityEvent_x (XGravityEvent *i) + { + return(i->x); + } + +-void set_XGravityEvent_x(i, j) +-XGravityEvent* i; +-int j; ++void ++set_XGravityEvent_x (XGravityEvent *i, int j) + { + i->x = j; + } + +-int XGravityEvent_window(i) +-XGravityEvent* i; ++int ++XGravityEvent_window (XGravityEvent *i) + { + return(i->window); + } + +-void set_XGravityEvent_window(i, j) +-XGravityEvent* i; +-int j; ++void ++set_XGravityEvent_window (XGravityEvent *i, int j) + { + i->window = j; + } + +-int XGravityEvent_event(i) +-XGravityEvent* i; ++int ++XGravityEvent_event (XGravityEvent *i) + { + return(i->event); + } + +-void set_XGravityEvent_event(i, j) +-XGravityEvent* i; +-int j; ++void ++set_XGravityEvent_event (XGravityEvent *i, int j) + { + i->event = j; + } + +-long XGravityEvent_display(i) +-XGravityEvent* i; ++long ++XGravityEvent_display (XGravityEvent *i) + { + return((long) i->display); + } + +-void set_XGravityEvent_display(i, j) +-XGravityEvent* i; +-long j; ++void ++set_XGravityEvent_display (XGravityEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XGravityEvent_send_event(i) +-XGravityEvent* i; ++int ++XGravityEvent_send_event (XGravityEvent *i) + { + return(i->send_event); + } + +-void set_XGravityEvent_send_event(i, j) +-XGravityEvent* i; +-int j; ++void ++set_XGravityEvent_send_event (XGravityEvent *i, int j) + { + i->send_event = j; + } + +-int XGravityEvent_serial(i) +-XGravityEvent* i; ++int ++XGravityEvent_serial (XGravityEvent *i) + { + return(i->serial); + } + +-void set_XGravityEvent_serial(i, j) +-XGravityEvent* i; +-int j; ++void ++set_XGravityEvent_serial (XGravityEvent *i, int j) + { + i->serial = j; + } + +-int XGravityEvent_type(i) +-XGravityEvent* i; ++int ++XGravityEvent_type (XGravityEvent *i) + { + return(i->type); + } + +-void set_XGravityEvent_type(i, j) +-XGravityEvent* i; +-int j; ++void ++set_XGravityEvent_type (XGravityEvent *i, int j) + { + i->type = j; + } +@@ -2472,97 +2311,91 @@ int j; + + /********* XResizeRequestEvent functions *****/ + +-long make_XResizeRequestEvent (){ ++long ++make_XResizeRequestEvent (void){ + return ((long) calloc(1, sizeof(XResizeRequestEvent))); + } + +-int XResizeRequestEvent_height(i) +-XResizeRequestEvent* i; ++int ++XResizeRequestEvent_height (XResizeRequestEvent *i) + { + return(i->height); + } + +-void set_XResizeRequestEvent_height(i, j) +-XResizeRequestEvent* i; +-int j; ++void ++set_XResizeRequestEvent_height (XResizeRequestEvent *i, int j) + { + i->height = j; + } + +-int XResizeRequestEvent_width(i) +-XResizeRequestEvent* i; ++int ++XResizeRequestEvent_width (XResizeRequestEvent *i) + { + return(i->width); + } + +-void set_XResizeRequestEvent_width(i, j) +-XResizeRequestEvent* i; +-int j; ++void ++set_XResizeRequestEvent_width (XResizeRequestEvent *i, int j) + { + i->width = j; + } + +-int XResizeRequestEvent_window(i) +-XResizeRequestEvent* i; ++int ++XResizeRequestEvent_window (XResizeRequestEvent *i) + { + return(i->window); + } + +-void set_XResizeRequestEvent_window(i, j) +-XResizeRequestEvent* i; +-int j; ++void ++set_XResizeRequestEvent_window (XResizeRequestEvent *i, int j) + { + i->window = j; + } + +-long XResizeRequestEvent_display(i) +-XResizeRequestEvent* i; ++long ++XResizeRequestEvent_display (XResizeRequestEvent *i) + { + return((long) i->display); + } + +-void set_XResizeRequestEvent_display(i, j) +-XResizeRequestEvent* i; +-long j; ++void ++set_XResizeRequestEvent_display (XResizeRequestEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XResizeRequestEvent_send_event(i) +-XResizeRequestEvent* i; ++int ++XResizeRequestEvent_send_event (XResizeRequestEvent *i) + { + return(i->send_event); + } + +-void set_XResizeRequestEvent_send_event(i, j) +-XResizeRequestEvent* i; +-int j; ++void ++set_XResizeRequestEvent_send_event (XResizeRequestEvent *i, int j) + { + i->send_event = j; + } + +-int XResizeRequestEvent_serial(i) +-XResizeRequestEvent* i; ++int ++XResizeRequestEvent_serial (XResizeRequestEvent *i) + { + return(i->serial); + } + +-void set_XResizeRequestEvent_serial(i, j) +-XResizeRequestEvent* i; +-int j; ++void ++set_XResizeRequestEvent_serial (XResizeRequestEvent *i, int j) + { + i->serial = j; + } + +-int XResizeRequestEvent_type(i) +-XResizeRequestEvent* i; ++int ++XResizeRequestEvent_type (XResizeRequestEvent *i) + { + return(i->type); + } + +-void set_XResizeRequestEvent_type(i, j) +-XResizeRequestEvent* i; +-int j; ++void ++set_XResizeRequestEvent_type (XResizeRequestEvent *i, int j) + { + i->type = j; + } +@@ -2570,188 +2403,175 @@ int j; + + /********* XConfigureRequestEvent functions *****/ + +-long make_XConfigureRequestEvent (){ ++long ++make_XConfigureRequestEvent (void){ + return ((long) calloc(1, sizeof(XConfigureRequestEvent))); + } + +-int XConfigureRequestEvent_value_mask(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_value_mask (XConfigureRequestEvent *i) + { + return(i->value_mask); + } + +-void set_XConfigureRequestEvent_value_mask(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_value_mask (XConfigureRequestEvent *i, int j) + { + i->value_mask = j; + } + +-int XConfigureRequestEvent_detail(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_detail (XConfigureRequestEvent *i) + { + return(i->detail); + } + +-void set_XConfigureRequestEvent_detail(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_detail (XConfigureRequestEvent *i, int j) + { + i->detail = j; + } + +-int XConfigureRequestEvent_above(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_above (XConfigureRequestEvent *i) + { + return(i->above); + } + +-void set_XConfigureRequestEvent_above(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_above (XConfigureRequestEvent *i, int j) + { + i->above = j; + } + +-int XConfigureRequestEvent_border_width(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_border_width (XConfigureRequestEvent *i) + { + return(i->border_width); + } + +-void set_XConfigureRequestEvent_border_width(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_border_width (XConfigureRequestEvent *i, int j) + { + i->border_width = j; + } + +-int XConfigureRequestEvent_height(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_height (XConfigureRequestEvent *i) + { + return(i->height); + } + +-void set_XConfigureRequestEvent_height(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_height (XConfigureRequestEvent *i, int j) + { + i->height = j; + } + +-int XConfigureRequestEvent_width(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_width (XConfigureRequestEvent *i) + { + return(i->width); + } + +-void set_XConfigureRequestEvent_width(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_width (XConfigureRequestEvent *i, int j) + { + i->width = j; + } + +-int XConfigureRequestEvent_y(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_y (XConfigureRequestEvent *i) + { + return(i->y); + } + +-void set_XConfigureRequestEvent_y(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_y (XConfigureRequestEvent *i, int j) + { + i->y = j; + } + +-int XConfigureRequestEvent_x(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_x (XConfigureRequestEvent *i) + { + return(i->x); + } + +-void set_XConfigureRequestEvent_x(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_x (XConfigureRequestEvent *i, int j) + { + i->x = j; + } + +-int XConfigureRequestEvent_window(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_window (XConfigureRequestEvent *i) + { + return(i->window); + } + +-void set_XConfigureRequestEvent_window(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_window (XConfigureRequestEvent *i, int j) + { + i->window = j; + } + +-int XConfigureRequestEvent_parent(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_parent (XConfigureRequestEvent *i) + { + return(i->parent); + } + +-void set_XConfigureRequestEvent_parent(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_parent (XConfigureRequestEvent *i, int j) + { + i->parent = j; + } + +-long XConfigureRequestEvent_display(i) +-XConfigureRequestEvent* i; ++long ++XConfigureRequestEvent_display (XConfigureRequestEvent *i) + { + return((long) i->display); + } + +-void set_XConfigureRequestEvent_display(i, j) +-XConfigureRequestEvent* i; +-long j; ++void ++set_XConfigureRequestEvent_display (XConfigureRequestEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XConfigureRequestEvent_send_event(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_send_event (XConfigureRequestEvent *i) + { + return(i->send_event); + } + +-void set_XConfigureRequestEvent_send_event(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_send_event (XConfigureRequestEvent *i, int j) + { + i->send_event = j; + } + +-int XConfigureRequestEvent_serial(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_serial (XConfigureRequestEvent *i) + { + return(i->serial); + } + +-void set_XConfigureRequestEvent_serial(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_serial (XConfigureRequestEvent *i, int j) + { + i->serial = j; + } + +-int XConfigureRequestEvent_type(i) +-XConfigureRequestEvent* i; ++int ++XConfigureRequestEvent_type (XConfigureRequestEvent *i) + { + return(i->type); + } + +-void set_XConfigureRequestEvent_type(i, j) +-XConfigureRequestEvent* i; +-int j; ++void ++set_XConfigureRequestEvent_type (XConfigureRequestEvent *i, int j) + { + i->type = j; + } +@@ -2759,97 +2579,91 @@ int j; + + /********* XCirculateEvent functions *****/ + +-long make_XCirculateEvent (){ ++long ++make_XCirculateEvent (void){ + return ((long) calloc(1, sizeof(XCirculateEvent))); + } + +-int XCirculateEvent_place(i) +-XCirculateEvent* i; ++int ++XCirculateEvent_place (XCirculateEvent *i) + { + return(i->place); + } + +-void set_XCirculateEvent_place(i, j) +-XCirculateEvent* i; +-int j; ++void ++set_XCirculateEvent_place (XCirculateEvent *i, int j) + { + i->place = j; + } + +-int XCirculateEvent_window(i) +-XCirculateEvent* i; ++int ++XCirculateEvent_window (XCirculateEvent *i) + { + return(i->window); + } + +-void set_XCirculateEvent_window(i, j) +-XCirculateEvent* i; +-int j; ++void ++set_XCirculateEvent_window (XCirculateEvent *i, int j) + { + i->window = j; + } + +-int XCirculateEvent_event(i) +-XCirculateEvent* i; ++int ++XCirculateEvent_event (XCirculateEvent *i) + { + return(i->event); + } + +-void set_XCirculateEvent_event(i, j) +-XCirculateEvent* i; +-int j; ++void ++set_XCirculateEvent_event (XCirculateEvent *i, int j) + { + i->event = j; + } + +-long XCirculateEvent_display(i) +-XCirculateEvent* i; ++long ++XCirculateEvent_display (XCirculateEvent *i) + { + return((long) i->display); + } + +-void set_XCirculateEvent_display(i, j) +-XCirculateEvent* i; +-long j; ++void ++set_XCirculateEvent_display (XCirculateEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XCirculateEvent_send_event(i) +-XCirculateEvent* i; ++int ++XCirculateEvent_send_event (XCirculateEvent *i) + { + return(i->send_event); + } + +-void set_XCirculateEvent_send_event(i, j) +-XCirculateEvent* i; +-int j; ++void ++set_XCirculateEvent_send_event (XCirculateEvent *i, int j) + { + i->send_event = j; + } + +-int XCirculateEvent_serial(i) +-XCirculateEvent* i; ++int ++XCirculateEvent_serial (XCirculateEvent *i) + { + return(i->serial); + } + +-void set_XCirculateEvent_serial(i, j) +-XCirculateEvent* i; +-int j; ++void ++set_XCirculateEvent_serial (XCirculateEvent *i, int j) + { + i->serial = j; + } + +-int XCirculateEvent_type(i) +-XCirculateEvent* i; ++int ++XCirculateEvent_type (XCirculateEvent *i) + { + return(i->type); + } + +-void set_XCirculateEvent_type(i, j) +-XCirculateEvent* i; +-int j; ++void ++set_XCirculateEvent_type (XCirculateEvent *i, int j) + { + i->type = j; + } +@@ -2857,97 +2671,91 @@ int j; + + /********* XCirculateRequestEvent functions *****/ + +-long make_XCirculateRequestEvent (){ ++long ++make_XCirculateRequestEvent (void){ + return ((long) calloc(1, sizeof(XCirculateRequestEvent))); + } + +-int XCirculateRequestEvent_place(i) +-XCirculateRequestEvent* i; ++int ++XCirculateRequestEvent_place (XCirculateRequestEvent *i) + { + return(i->place); + } + +-void set_XCirculateRequestEvent_place(i, j) +-XCirculateRequestEvent* i; +-int j; ++void ++set_XCirculateRequestEvent_place (XCirculateRequestEvent *i, int j) + { + i->place = j; + } + +-int XCirculateRequestEvent_window(i) +-XCirculateRequestEvent* i; ++int ++XCirculateRequestEvent_window (XCirculateRequestEvent *i) + { + return(i->window); + } + +-void set_XCirculateRequestEvent_window(i, j) +-XCirculateRequestEvent* i; +-int j; ++void ++set_XCirculateRequestEvent_window (XCirculateRequestEvent *i, int j) + { + i->window = j; + } + +-int XCirculateRequestEvent_parent(i) +-XCirculateRequestEvent* i; ++int ++XCirculateRequestEvent_parent (XCirculateRequestEvent *i) + { + return(i->parent); + } + +-void set_XCirculateRequestEvent_parent(i, j) +-XCirculateRequestEvent* i; +-int j; ++void ++set_XCirculateRequestEvent_parent (XCirculateRequestEvent *i, int j) + { + i->parent = j; + } + +-long XCirculateRequestEvent_display(i) +-XCirculateRequestEvent* i; ++long ++XCirculateRequestEvent_display (XCirculateRequestEvent *i) + { + return((long) i->display); + } + +-void set_XCirculateRequestEvent_display(i, j) +-XCirculateRequestEvent* i; +-long j; ++void ++set_XCirculateRequestEvent_display (XCirculateRequestEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XCirculateRequestEvent_send_event(i) +-XCirculateRequestEvent* i; ++int ++XCirculateRequestEvent_send_event (XCirculateRequestEvent *i) + { + return(i->send_event); + } + +-void set_XCirculateRequestEvent_send_event(i, j) +-XCirculateRequestEvent* i; +-int j; ++void ++set_XCirculateRequestEvent_send_event (XCirculateRequestEvent *i, int j) + { + i->send_event = j; + } + +-int XCirculateRequestEvent_serial(i) +-XCirculateRequestEvent* i; ++int ++XCirculateRequestEvent_serial (XCirculateRequestEvent *i) + { + return(i->serial); + } + +-void set_XCirculateRequestEvent_serial(i, j) +-XCirculateRequestEvent* i; +-int j; ++void ++set_XCirculateRequestEvent_serial (XCirculateRequestEvent *i, int j) + { + i->serial = j; + } + +-int XCirculateRequestEvent_type(i) +-XCirculateRequestEvent* i; ++int ++XCirculateRequestEvent_type (XCirculateRequestEvent *i) + { + return(i->type); + } + +-void set_XCirculateRequestEvent_type(i, j) +-XCirculateRequestEvent* i; +-int j; ++void ++set_XCirculateRequestEvent_type (XCirculateRequestEvent *i, int j) + { + i->type = j; + } +@@ -2955,110 +2763,103 @@ int j; + + /********* XPropertyEvent functions *****/ + +-long make_XPropertyEvent (){ ++long ++make_XPropertyEvent (void){ + return ((long) calloc(1, sizeof(XPropertyEvent))); + } + +-int XPropertyEvent_state(i) +-XPropertyEvent* i; ++int ++XPropertyEvent_state (XPropertyEvent *i) + { + return(i->state); + } + +-void set_XPropertyEvent_state(i, j) +-XPropertyEvent* i; +-int j; ++void ++set_XPropertyEvent_state (XPropertyEvent *i, int j) + { + i->state = j; + } + +-int XPropertyEvent_time(i) +-XPropertyEvent* i; ++int ++XPropertyEvent_time (XPropertyEvent *i) + { + return(i->time); + } + +-void set_XPropertyEvent_time(i, j) +-XPropertyEvent* i; +-int j; ++void ++set_XPropertyEvent_time (XPropertyEvent *i, int j) + { + i->time = j; + } + +-int XPropertyEvent_atom(i) +-XPropertyEvent* i; ++int ++XPropertyEvent_atom (XPropertyEvent *i) + { + return(i->atom); + } + +-void set_XPropertyEvent_atom(i, j) +-XPropertyEvent* i; +-int j; ++void ++set_XPropertyEvent_atom (XPropertyEvent *i, int j) + { + i->atom = j; + } + +-int XPropertyEvent_window(i) +-XPropertyEvent* i; ++int ++XPropertyEvent_window (XPropertyEvent *i) + { + return(i->window); + } + +-void set_XPropertyEvent_window(i, j) +-XPropertyEvent* i; +-int j; ++void ++set_XPropertyEvent_window (XPropertyEvent *i, int j) + { + i->window = j; + } + +-long XPropertyEvent_display(i) +-XPropertyEvent* i; ++long ++XPropertyEvent_display (XPropertyEvent *i) + { + return((long) i->display); + } + +-void set_XPropertyEvent_display(i, j) +-XPropertyEvent* i; +-long j; ++void ++set_XPropertyEvent_display (XPropertyEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XPropertyEvent_send_event(i) +-XPropertyEvent* i; ++int ++XPropertyEvent_send_event (XPropertyEvent *i) + { + return(i->send_event); + } + +-void set_XPropertyEvent_send_event(i, j) +-XPropertyEvent* i; +-int j; ++void ++set_XPropertyEvent_send_event (XPropertyEvent *i, int j) + { + i->send_event = j; + } + +-int XPropertyEvent_serial(i) +-XPropertyEvent* i; ++int ++XPropertyEvent_serial (XPropertyEvent *i) + { + return(i->serial); + } + +-void set_XPropertyEvent_serial(i, j) +-XPropertyEvent* i; +-int j; ++void ++set_XPropertyEvent_serial (XPropertyEvent *i, int j) + { + i->serial = j; + } + +-int XPropertyEvent_type(i) +-XPropertyEvent* i; ++int ++XPropertyEvent_type (XPropertyEvent *i) + { + return(i->type); + } + +-void set_XPropertyEvent_type(i, j) +-XPropertyEvent* i; +-int j; ++void ++set_XPropertyEvent_type (XPropertyEvent *i, int j) + { + i->type = j; + } +@@ -3066,97 +2867,91 @@ int j; + + /********* XSelectionClearEvent functions *****/ + +-long make_XSelectionClearEvent (){ ++long ++make_XSelectionClearEvent (void){ + return ((long) calloc(1, sizeof(XSelectionClearEvent))); + } + +-int XSelectionClearEvent_time(i) +-XSelectionClearEvent* i; ++int ++XSelectionClearEvent_time (XSelectionClearEvent *i) + { + return(i->time); + } + +-void set_XSelectionClearEvent_time(i, j) +-XSelectionClearEvent* i; +-int j; ++void ++set_XSelectionClearEvent_time (XSelectionClearEvent *i, int j) + { + i->time = j; + } + +-int XSelectionClearEvent_selection(i) +-XSelectionClearEvent* i; ++int ++XSelectionClearEvent_selection (XSelectionClearEvent *i) + { + return(i->selection); + } + +-void set_XSelectionClearEvent_selection(i, j) +-XSelectionClearEvent* i; +-int j; ++void ++set_XSelectionClearEvent_selection (XSelectionClearEvent *i, int j) + { + i->selection = j; + } + +-int XSelectionClearEvent_window(i) +-XSelectionClearEvent* i; ++int ++XSelectionClearEvent_window (XSelectionClearEvent *i) + { + return(i->window); + } + +-void set_XSelectionClearEvent_window(i, j) +-XSelectionClearEvent* i; +-int j; ++void ++set_XSelectionClearEvent_window (XSelectionClearEvent *i, int j) + { + i->window = j; + } + +-long XSelectionClearEvent_display(i) +-XSelectionClearEvent* i; ++long ++XSelectionClearEvent_display (XSelectionClearEvent *i) + { + return((long) i->display); + } + +-void set_XSelectionClearEvent_display(i, j) +-XSelectionClearEvent* i; +-long j; ++void ++set_XSelectionClearEvent_display (XSelectionClearEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XSelectionClearEvent_send_event(i) +-XSelectionClearEvent* i; ++int ++XSelectionClearEvent_send_event (XSelectionClearEvent *i) + { + return(i->send_event); + } + +-void set_XSelectionClearEvent_send_event(i, j) +-XSelectionClearEvent* i; +-int j; ++void ++set_XSelectionClearEvent_send_event (XSelectionClearEvent *i, int j) + { + i->send_event = j; + } + +-int XSelectionClearEvent_serial(i) +-XSelectionClearEvent* i; ++int ++XSelectionClearEvent_serial (XSelectionClearEvent *i) + { + return(i->serial); + } + +-void set_XSelectionClearEvent_serial(i, j) +-XSelectionClearEvent* i; +-int j; ++void ++set_XSelectionClearEvent_serial (XSelectionClearEvent *i, int j) + { + i->serial = j; + } + +-int XSelectionClearEvent_type(i) +-XSelectionClearEvent* i; ++int ++XSelectionClearEvent_type (XSelectionClearEvent *i) + { + return(i->type); + } + +-void set_XSelectionClearEvent_type(i, j) +-XSelectionClearEvent* i; +-int j; ++void ++set_XSelectionClearEvent_type (XSelectionClearEvent *i, int j) + { + i->type = j; + } +@@ -3164,136 +2959,127 @@ int j; + + /********* XSelectionRequestEvent functions *****/ + +-long make_XSelectionRequestEvent (){ ++long ++make_XSelectionRequestEvent (void){ + return ((long) calloc(1, sizeof(XSelectionRequestEvent))); + } + +-int XSelectionRequestEvent_time(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_time (XSelectionRequestEvent *i) + { + return(i->time); + } + +-void set_XSelectionRequestEvent_time(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_time (XSelectionRequestEvent *i, int j) + { + i->time = j; + } + +-int XSelectionRequestEvent_property(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_property (XSelectionRequestEvent *i) + { + return(i->property); + } + +-void set_XSelectionRequestEvent_property(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_property (XSelectionRequestEvent *i, int j) + { + i->property = j; + } + +-int XSelectionRequestEvent_target(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_target (XSelectionRequestEvent *i) + { + return(i->target); + } + +-void set_XSelectionRequestEvent_target(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_target (XSelectionRequestEvent *i, int j) + { + i->target = j; + } + +-int XSelectionRequestEvent_selection(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_selection (XSelectionRequestEvent *i) + { + return(i->selection); + } + +-void set_XSelectionRequestEvent_selection(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_selection (XSelectionRequestEvent *i, int j) + { + i->selection = j; + } + +-int XSelectionRequestEvent_requestor(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_requestor (XSelectionRequestEvent *i) + { + return(i->requestor); + } + +-void set_XSelectionRequestEvent_requestor(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_requestor (XSelectionRequestEvent *i, int j) + { + i->requestor = j; + } + +-int XSelectionRequestEvent_owner(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_owner (XSelectionRequestEvent *i) + { + return(i->owner); + } + +-void set_XSelectionRequestEvent_owner(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_owner (XSelectionRequestEvent *i, int j) + { + i->owner = j; + } + +-long XSelectionRequestEvent_display(i) +-XSelectionRequestEvent* i; ++long ++XSelectionRequestEvent_display (XSelectionRequestEvent *i) + { + return((long) i->display); + } + +-void set_XSelectionRequestEvent_display(i, j) +-XSelectionRequestEvent* i; +-long j; ++void ++set_XSelectionRequestEvent_display (XSelectionRequestEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XSelectionRequestEvent_send_event(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_send_event (XSelectionRequestEvent *i) + { + return(i->send_event); + } + +-void set_XSelectionRequestEvent_send_event(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_send_event (XSelectionRequestEvent *i, int j) + { + i->send_event = j; + } + +-int XSelectionRequestEvent_serial(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_serial (XSelectionRequestEvent *i) + { + return(i->serial); + } + +-void set_XSelectionRequestEvent_serial(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_serial (XSelectionRequestEvent *i, int j) + { + i->serial = j; + } + +-int XSelectionRequestEvent_type(i) +-XSelectionRequestEvent* i; ++int ++XSelectionRequestEvent_type (XSelectionRequestEvent *i) + { + return(i->type); + } + +-void set_XSelectionRequestEvent_type(i, j) +-XSelectionRequestEvent* i; +-int j; ++void ++set_XSelectionRequestEvent_type (XSelectionRequestEvent *i, int j) + { + i->type = j; + } +@@ -3301,123 +3087,115 @@ int j; + + /********* XSelectionEvent functions *****/ + +-long make_XSelectionEvent (){ ++long ++make_XSelectionEvent (void){ + return ((long) calloc(1, sizeof(XSelectionEvent))); + } + +-int XSelectionEvent_time(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_time (XSelectionEvent *i) + { + return(i->time); + } + +-void set_XSelectionEvent_time(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_time (XSelectionEvent *i, int j) + { + i->time = j; + } + +-int XSelectionEvent_property(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_property (XSelectionEvent *i) + { + return(i->property); + } + +-void set_XSelectionEvent_property(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_property (XSelectionEvent *i, int j) + { + i->property = j; + } + +-int XSelectionEvent_target(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_target (XSelectionEvent *i) + { + return(i->target); + } + +-void set_XSelectionEvent_target(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_target (XSelectionEvent *i, int j) + { + i->target = j; + } + +-int XSelectionEvent_selection(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_selection (XSelectionEvent *i) + { + return(i->selection); + } + +-void set_XSelectionEvent_selection(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_selection (XSelectionEvent *i, int j) + { + i->selection = j; + } + +-int XSelectionEvent_requestor(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_requestor (XSelectionEvent *i) + { + return(i->requestor); + } + +-void set_XSelectionEvent_requestor(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_requestor (XSelectionEvent *i, int j) + { + i->requestor = j; + } + +-long XSelectionEvent_display(i) +-XSelectionEvent* i; ++long ++XSelectionEvent_display (XSelectionEvent *i) + { + return((long) i->display); + } + +-void set_XSelectionEvent_display(i, j) +-XSelectionEvent* i; +-long j; ++void ++set_XSelectionEvent_display (XSelectionEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XSelectionEvent_send_event(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_send_event (XSelectionEvent *i) + { + return(i->send_event); + } + +-void set_XSelectionEvent_send_event(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_send_event (XSelectionEvent *i, int j) + { + i->send_event = j; + } + +-int XSelectionEvent_serial(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_serial (XSelectionEvent *i) + { + return(i->serial); + } + +-void set_XSelectionEvent_serial(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_serial (XSelectionEvent *i, int j) + { + i->serial = j; + } + +-int XSelectionEvent_type(i) +-XSelectionEvent* i; ++int ++XSelectionEvent_type (XSelectionEvent *i) + { + return(i->type); + } + +-void set_XSelectionEvent_type(i, j) +-XSelectionEvent* i; +-int j; ++void ++set_XSelectionEvent_type (XSelectionEvent *i, int j) + { + i->type = j; + } +@@ -3425,110 +3203,103 @@ int j; + + /********* XColormapEvent functions *****/ + +-long make_XColormapEvent (){ ++long ++make_XColormapEvent (void){ + return ((long) calloc(1, sizeof(XColormapEvent))); + } + +-int XColormapEvent_state(i) +-XColormapEvent* i; ++int ++XColormapEvent_state (XColormapEvent *i) + { + return(i->state); + } + +-void set_XColormapEvent_state(i, j) +-XColormapEvent* i; +-int j; ++void ++set_XColormapEvent_state (XColormapEvent *i, int j) + { + i->state = j; + } + +-int XColormapEvent_new(i) +-XColormapEvent* i; ++int ++XColormapEvent_new (XColormapEvent *i) + { + return(i->new); + } + +-void set_XColormapEvent_new(i, j) +-XColormapEvent* i; +-int j; ++void ++set_XColormapEvent_new (XColormapEvent *i, int j) + { + i->new = j; + } + +-int XColormapEvent_colormap(i) +-XColormapEvent* i; ++int ++XColormapEvent_colormap (XColormapEvent *i) + { + return(i->colormap); + } + +-void set_XColormapEvent_colormap(i, j) +-XColormapEvent* i; +-int j; ++void ++set_XColormapEvent_colormap (XColormapEvent *i, int j) + { + i->colormap = j; + } + +-int XColormapEvent_window(i) +-XColormapEvent* i; ++int ++XColormapEvent_window (XColormapEvent *i) + { + return(i->window); + } + +-void set_XColormapEvent_window(i, j) +-XColormapEvent* i; +-int j; ++void ++set_XColormapEvent_window (XColormapEvent *i, int j) + { + i->window = j; + } + +-long XColormapEvent_display(i) +-XColormapEvent* i; ++long ++XColormapEvent_display (XColormapEvent *i) + { + return((long) i->display); + } + +-void set_XColormapEvent_display(i, j) +-XColormapEvent* i; +-long j; ++void ++set_XColormapEvent_display (XColormapEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XColormapEvent_send_event(i) +-XColormapEvent* i; ++int ++XColormapEvent_send_event (XColormapEvent *i) + { + return(i->send_event); + } + +-void set_XColormapEvent_send_event(i, j) +-XColormapEvent* i; +-int j; ++void ++set_XColormapEvent_send_event (XColormapEvent *i, int j) + { + i->send_event = j; + } + +-int XColormapEvent_serial(i) +-XColormapEvent* i; ++int ++XColormapEvent_serial (XColormapEvent *i) + { + return(i->serial); + } + +-void set_XColormapEvent_serial(i, j) +-XColormapEvent* i; +-int j; ++void ++set_XColormapEvent_serial (XColormapEvent *i, int j) + { + i->serial = j; + } + +-int XColormapEvent_type(i) +-XColormapEvent* i; ++int ++XColormapEvent_type (XColormapEvent *i) + { + return(i->type); + } + +-void set_XColormapEvent_type(i, j) +-XColormapEvent* i; +-int j; ++void ++set_XColormapEvent_type (XColormapEvent *i, int j) + { + i->type = j; + } +@@ -3536,98 +3307,92 @@ int j; + + /********* XClientMessageEvent functions *****/ + +-long make_XClientMessageEvent (){ ++long ++make_XClientMessageEvent (void){ + return ((long) calloc(1, sizeof(XClientMessageEvent))); + } + +-int XClientMessageEvent_format(i) +-XClientMessageEvent* i; ++int ++XClientMessageEvent_format (XClientMessageEvent *i) + { + return(i->format); + } + +-void set_XClientMessageEvent_format(i, j) +-XClientMessageEvent* i; +-int j; ++void ++set_XClientMessageEvent_format (XClientMessageEvent *i, int j) + { + i->format = j; + } + +-int XClientMessageEvent_message_type(i) +-XClientMessageEvent* i; ++int ++XClientMessageEvent_message_type (XClientMessageEvent *i) + { + return(i->message_type); + } + +-void set_XClientMessageEvent_message_type(i, j) +-XClientMessageEvent* i; +-int j; ++void ++set_XClientMessageEvent_message_type (XClientMessageEvent *i, int j) + { + i->message_type = j; + } + + +-int XClientMessageEvent_window(i) +-XClientMessageEvent* i; ++int ++XClientMessageEvent_window (XClientMessageEvent *i) + { + return(i->window); + } + +-void set_XClientMessageEvent_window(i, j) +-XClientMessageEvent* i; +-int j; ++void ++set_XClientMessageEvent_window (XClientMessageEvent *i, int j) + { + i->window = j; + } + +-long XClientMessageEvent_display(i) +-XClientMessageEvent* i; ++long ++XClientMessageEvent_display (XClientMessageEvent *i) + { + return((long) i->display); + } + +-void set_XClientMessageEvent_display(i, j) +-XClientMessageEvent* i; +-long j; ++void ++set_XClientMessageEvent_display (XClientMessageEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XClientMessageEvent_send_event(i) +-XClientMessageEvent* i; ++int ++XClientMessageEvent_send_event (XClientMessageEvent *i) + { + return(i->send_event); + } + +-void set_XClientMessageEvent_send_event(i, j) +-XClientMessageEvent* i; +-int j; ++void ++set_XClientMessageEvent_send_event (XClientMessageEvent *i, int j) + { + i->send_event = j; + } + +-int XClientMessageEvent_serial(i) +-XClientMessageEvent* i; ++int ++XClientMessageEvent_serial (XClientMessageEvent *i) + { + return(i->serial); + } + +-void set_XClientMessageEvent_serial(i, j) +-XClientMessageEvent* i; +-int j; ++void ++set_XClientMessageEvent_serial (XClientMessageEvent *i, int j) + { + i->serial = j; + } + +-int XClientMessageEvent_type(i) +-XClientMessageEvent* i; ++int ++XClientMessageEvent_type (XClientMessageEvent *i) + { + return(i->type); + } + +-void set_XClientMessageEvent_type(i, j) +-XClientMessageEvent* i; +-int j; ++void ++set_XClientMessageEvent_type (XClientMessageEvent *i, int j) + { + i->type = j; + } +@@ -3635,110 +3400,103 @@ int j; + + /********* XMappingEvent functions *****/ + +-long make_XMappingEvent (){ ++long ++make_XMappingEvent (void){ + return ((long) calloc(1, sizeof(XMappingEvent))); + } + +-int XMappingEvent_count(i) +-XMappingEvent* i; ++int ++XMappingEvent_count (XMappingEvent *i) + { + return(i->count); + } + +-void set_XMappingEvent_count(i, j) +-XMappingEvent* i; +-int j; ++void ++set_XMappingEvent_count (XMappingEvent *i, int j) + { + i->count = j; + } + +-int XMappingEvent_first_keycode(i) +-XMappingEvent* i; ++int ++XMappingEvent_first_keycode (XMappingEvent *i) + { + return(i->first_keycode); + } + +-void set_XMappingEvent_first_keycode(i, j) +-XMappingEvent* i; +-int j; ++void ++set_XMappingEvent_first_keycode (XMappingEvent *i, int j) + { + i->first_keycode = j; + } + +-int XMappingEvent_request(i) +-XMappingEvent* i; ++int ++XMappingEvent_request (XMappingEvent *i) + { + return(i->request); + } + +-void set_XMappingEvent_request(i, j) +-XMappingEvent* i; +-int j; ++void ++set_XMappingEvent_request (XMappingEvent *i, int j) + { + i->request = j; + } + +-int XMappingEvent_window(i) +-XMappingEvent* i; ++int ++XMappingEvent_window (XMappingEvent *i) + { + return(i->window); + } + +-void set_XMappingEvent_window(i, j) +-XMappingEvent* i; +-int j; ++void ++set_XMappingEvent_window (XMappingEvent *i, int j) + { + i->window = j; + } + +-long XMappingEvent_display(i) +-XMappingEvent* i; ++long ++XMappingEvent_display (XMappingEvent *i) + { + return((long) i->display); + } + +-void set_XMappingEvent_display(i, j) +-XMappingEvent* i; +-long j; ++void ++set_XMappingEvent_display (XMappingEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XMappingEvent_send_event(i) +-XMappingEvent* i; ++int ++XMappingEvent_send_event (XMappingEvent *i) + { + return(i->send_event); + } + +-void set_XMappingEvent_send_event(i, j) +-XMappingEvent* i; +-int j; ++void ++set_XMappingEvent_send_event (XMappingEvent *i, int j) + { + i->send_event = j; + } + +-int XMappingEvent_serial(i) +-XMappingEvent* i; ++int ++XMappingEvent_serial (XMappingEvent *i) + { + return(i->serial); + } + +-void set_XMappingEvent_serial(i, j) +-XMappingEvent* i; +-int j; ++void ++set_XMappingEvent_serial (XMappingEvent *i, int j) + { + i->serial = j; + } + +-int XMappingEvent_type(i) +-XMappingEvent* i; ++int ++XMappingEvent_type (XMappingEvent *i) + { + return(i->type); + } + +-void set_XMappingEvent_type(i, j) +-XMappingEvent* i; +-int j; ++void ++set_XMappingEvent_type (XMappingEvent *i, int j) + { + i->type = j; + } +@@ -3746,97 +3504,91 @@ int j; + + /********* XErrorEvent functions *****/ + +-long make_XErrorEvent (){ ++long ++make_XErrorEvent (void){ + return ((long) calloc(1, sizeof(XErrorEvent))); + } + +-char XErrorEvent_minor_code(i) +-XErrorEvent* i; ++char ++XErrorEvent_minor_code (XErrorEvent *i) + { + return(i->minor_code); + } + +-void set_XErrorEvent_minor_code(i, j) +-XErrorEvent* i; +-char j; ++void ++set_XErrorEvent_minor_code (XErrorEvent *i, int j) + { + i->minor_code = j; + } + +-char XErrorEvent_request_code(i) +-XErrorEvent* i; ++char ++XErrorEvent_request_code (XErrorEvent *i) + { + return(i->request_code); + } + +-void set_XErrorEvent_request_code(i, j) +-XErrorEvent* i; +-char j; ++void ++set_XErrorEvent_request_code (XErrorEvent *i, int j) + { + i->request_code = j; + } + +-char XErrorEvent_error_code(i) +-XErrorEvent* i; ++char ++XErrorEvent_error_code (XErrorEvent *i) + { + return(i->error_code); + } + +-void set_XErrorEvent_error_code(i, j) +-XErrorEvent* i; +-char j; ++void ++set_XErrorEvent_error_code (XErrorEvent *i, int j) + { + i->error_code = j; + } + +-int XErrorEvent_serial(i) +-XErrorEvent* i; ++int ++XErrorEvent_serial (XErrorEvent *i) + { + return(i->serial); + } + +-void set_XErrorEvent_serial(i, j) +-XErrorEvent* i; +-int j; ++void ++set_XErrorEvent_serial (XErrorEvent *i, int j) + { + i->serial = j; + } + +-int XErrorEvent_resourceid(i) +-XErrorEvent* i; ++int ++XErrorEvent_resourceid (XErrorEvent *i) + { + return(i->resourceid); + } + +-void set_XErrorEvent_resourceid(i, j) +-XErrorEvent* i; +-int j; ++void ++set_XErrorEvent_resourceid (XErrorEvent *i, int j) + { + i->resourceid = j; + } + +-long XErrorEvent_display(i) +-XErrorEvent* i; ++long ++XErrorEvent_display (XErrorEvent *i) + { + return((long) i->display); + } + +-void set_XErrorEvent_display(i, j) +-XErrorEvent* i; +-long j; ++void ++set_XErrorEvent_display (XErrorEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XErrorEvent_type(i) +-XErrorEvent* i; ++int ++XErrorEvent_type (XErrorEvent *i) + { + return(i->type); + } + +-void set_XErrorEvent_type(i, j) +-XErrorEvent* i; +-int j; ++void ++set_XErrorEvent_type (XErrorEvent *i, int j) + { + i->type = j; + } +@@ -3844,71 +3596,67 @@ int j; + + /********* XAnyEvent functions *****/ + +-long make_XAnyEvent (){ ++long ++make_XAnyEvent (void){ + return ((long) calloc(1, sizeof(XAnyEvent))); + } + +-int XAnyEvent_window(i) +-XAnyEvent* i; ++int ++XAnyEvent_window (XAnyEvent *i) + { + return(i->window); + } + +-void set_XAnyEvent_window(i, j) +-XAnyEvent* i; +-int j; ++void ++set_XAnyEvent_window (XAnyEvent *i, int j) + { + i->window = j; + } + +-long XAnyEvent_display(i) +-XAnyEvent* i; ++long ++XAnyEvent_display (XAnyEvent *i) + { + return((long) i->display); + } + +-void set_XAnyEvent_display(i, j) +-XAnyEvent* i; +-long j; ++void ++set_XAnyEvent_display (XAnyEvent *i, long j) + { + i->display = (Display *) j; + } + +-int XAnyEvent_send_event(i) +-XAnyEvent* i; ++int ++XAnyEvent_send_event (XAnyEvent *i) + { + return(i->send_event); + } + +-void set_XAnyEvent_send_event(i, j) +-XAnyEvent* i; +-int j; ++void ++set_XAnyEvent_send_event (XAnyEvent *i, int j) + { + i->send_event = j; + } + +-int XAnyEvent_serial(i) +-XAnyEvent* i; ++int ++XAnyEvent_serial (XAnyEvent *i) + { + return(i->serial); + } + +-void set_XAnyEvent_serial(i, j) +-XAnyEvent* i; +-int j; ++void ++set_XAnyEvent_serial (XAnyEvent *i, int j) + { + i->serial = j; + } + +-int XAnyEvent_type(i) +-XAnyEvent* i; ++int ++XAnyEvent_type (XAnyEvent *i) + { + return(i->type); + } + +-void set_XAnyEvent_type(i, j) +-XAnyEvent* i; +-int j; ++void ++set_XAnyEvent_type (XAnyEvent *i, int j) + { + i->type = j; + } +@@ -3916,6 +3664,7 @@ int j; + + /********* XEvent functions *****/ + +-long make_XEvent (){ ++long ++make_XEvent (void){ + return ((long) calloc(1, sizeof(XEvent))); + } +--- gcl27-2.7.1.orig/xgcl-2/XStruct-2.c ++++ gcl27-2.7.1/xgcl-2/XStruct-2.c +@@ -24,38 +24,37 @@ + + + /********* _XQEvent functions *****/ ++ + #define NEED_EVENTS + #include + #include + #include + + +-long make__XQEvent (){ ++long make__XQEvent (void) ++{ + return ((long) calloc(1, sizeof(_XQEvent))); + } + +-XEvent _XQEvent_event(i) +-_XQEvent* i; ++XEvent _XQEvent_event (_XQEvent* i) + { + return(i->event); + } + +-void set__XQEvent_event(i, j) +-_XQEvent* i; +-XEvent j; ++void ++set__XQEvent_event (_XQEvent *i, XEvent j) + { + i->event = j; + } + +-long _XQEvent_next(i) +-_XQEvent* i; ++long ++_XQEvent_next (_XQEvent *i) + { + return((long) i->next); + } + +-void set__XQEvent_next(i, j) +-_XQEvent* i; +-long j; ++void ++set__XQEvent_next (_XQEvent *i, long j) + { + i->next = (struct _XSQEvent *) j; + } +@@ -63,84 +62,79 @@ long j; + + /********* XCharStruct functions *****/ + +-long make_XCharStruct (){ ++long ++make_XCharStruct (void){ + return ((long) calloc(1, sizeof(XCharStruct))); + } + +-int XCharStruct_attributes(i) +-XCharStruct* i; ++int ++XCharStruct_attributes (XCharStruct *i) + { + return(i->attributes); + } + +-void set_XCharStruct_attributes(i, j) +-XCharStruct* i; +-int j; ++void ++set_XCharStruct_attributes (XCharStruct *i, int j) + { + i->attributes = j; + } + +-int XCharStruct_descent(i) +-XCharStruct* i; ++int ++XCharStruct_descent (XCharStruct *i) + { + return(i->descent); + } + +-void set_XCharStruct_descent(i, j) +-XCharStruct* i; +-int j; ++void ++set_XCharStruct_descent (XCharStruct *i, int j) + { + i->descent = j; + } + +-int XCharStruct_ascent(i) +-XCharStruct* i; ++int ++XCharStruct_ascent (XCharStruct *i) + { + return(i->ascent); + } + +-void set_XCharStruct_ascent(i, j) +-XCharStruct* i; +-int j; ++void ++set_XCharStruct_ascent (XCharStruct *i, int j) + { + i->ascent = j; + } + +-int XCharStruct_width(i) +-XCharStruct* i; ++int ++XCharStruct_width (XCharStruct *i) + { + return(i->width); + } + +-void set_XCharStruct_width(i, j) +-XCharStruct* i; +-int j; ++void ++set_XCharStruct_width (XCharStruct *i, int j) + { + i->width = j; + } + +-int XCharStruct_rbearing(i) +-XCharStruct* i; ++int ++XCharStruct_rbearing (XCharStruct *i) + { + return(i->rbearing); + } + +-void set_XCharStruct_rbearing(i, j) +-XCharStruct* i; +-int j; ++void ++set_XCharStruct_rbearing (XCharStruct *i, int j) + { + i->rbearing = j; + } + +-int XCharStruct_lbearing(i) +-XCharStruct* i; ++int ++XCharStruct_lbearing (XCharStruct *i) + { + return(i->lbearing); + } + +-void set_XCharStruct_lbearing(i, j) +-XCharStruct* i; +-int j; ++void ++set_XCharStruct_lbearing (XCharStruct *i, int j) + { + i->lbearing = j; + } +@@ -148,32 +142,31 @@ int j; + + /********* XFontProp functions *****/ + +-long make_XFontProp (){ ++long ++make_XFontProp (void){ + return ((long) calloc(1, sizeof(XFontProp))); + } + +-int XFontProp_card32(i) +-XFontProp* i; ++int ++XFontProp_card32 (XFontProp *i) + { + return(i->card32); + } + +-void set_XFontProp_card32(i, j) +-XFontProp* i; +-int j; ++void ++set_XFontProp_card32 (XFontProp *i, int j) + { + i->card32 = j; + } + +-int XFontProp_name(i) +-XFontProp* i; ++int ++XFontProp_name (XFontProp *i) + { + return(i->name); + } + +-void set_XFontProp_name(i, j) +-XFontProp* i; +-int j; ++void ++set_XFontProp_name (XFontProp *i, int j) + { + i->name = j; + } +@@ -181,211 +174,196 @@ int j; + + /********* XFontStruct functions *****/ + +-long make_XFontStruct (){ ++long ++make_XFontStruct (void){ + return ((long) calloc(1, sizeof(XFontStruct))); + } + +-int XFontStruct_descent(i) +-XFontStruct* i; ++int ++XFontStruct_descent (XFontStruct *i) + { + return(i->descent); + } + +-void set_XFontStruct_descent(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_descent (XFontStruct *i, int j) + { + i->descent = j; + } + +-int XFontStruct_ascent(i) +-XFontStruct* i; ++int ++XFontStruct_ascent (XFontStruct *i) + { + return(i->ascent); + } + +-void set_XFontStruct_ascent(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_ascent (XFontStruct *i, int j) + { + i->ascent = j; + } + +-long XFontStruct_per_char(i) +-XFontStruct* i; ++long ++XFontStruct_per_char (XFontStruct *i) + { + return((long) i->per_char); + } + +-void set_XFontStruct_per_char(i, j) +-XFontStruct* i; +-long j; ++void ++set_XFontStruct_per_char (XFontStruct *i, long j) + { + i->per_char = (XCharStruct *) j; + } + +-long XFontStruct_max_bounds(i) +-XFontStruct* i; ++long ++XFontStruct_max_bounds (XFontStruct *i) + { + return((long) &i->max_bounds); + } +-long XFontStruct_min_bounds(i) +-XFontStruct* i; ++long ++XFontStruct_min_bounds (XFontStruct *i) + { + return((long) &i->min_bounds); + } +-void set_XFontStruct_max_bounds(i, j) +-XFontStruct* i; +-XCharStruct j; ++void ++set_XFontStruct_max_bounds (XFontStruct *i, XCharStruct j) + { + i->max_bounds = j; + } +-void set_XFontStruct_min_bounds(i, j) +-XFontStruct* i; +-XCharStruct j; ++void ++set_XFontStruct_min_bounds (XFontStruct *i, XCharStruct j) + { + i->min_bounds = j; + } + +-long XFontStruct_properties(i) +-XFontStruct* i; ++long ++XFontStruct_properties (XFontStruct *i) + { + return((long) i->properties); + } + +-void set_XFontStruct_properties(i, j) +-XFontStruct* i; +-long j; ++void ++set_XFontStruct_properties (XFontStruct *i, long j) + { + i->properties = (XFontProp *) j; + } + +-int XFontStruct_n_properties(i) +-XFontStruct* i; ++int ++XFontStruct_n_properties (XFontStruct *i) + { + return(i->n_properties); + } + +-void set_XFontStruct_n_properties(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_n_properties (XFontStruct *i, int j) + { + i->n_properties = j; + } + +-int XFontStruct_default_char(i) +-XFontStruct* i; ++int ++XFontStruct_default_char (XFontStruct *i) + { + return(i->default_char); + } + +-void set_XFontStruct_default_char(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_default_char (XFontStruct *i, int j) + { + i->default_char = j; + } + +-int XFontStruct_all_chars_exist(i) +-XFontStruct* i; ++int ++XFontStruct_all_chars_exist (XFontStruct *i) + { + return(i->all_chars_exist); + } + +-void set_XFontStruct_all_chars_exist(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_all_chars_exist (XFontStruct *i, int j) + { + i->all_chars_exist = j; + } + +-int XFontStruct_max_byte1(i) +-XFontStruct* i; ++int ++XFontStruct_max_byte1 (XFontStruct *i) + { + return(i->max_byte1); + } + +-void set_XFontStruct_max_byte1(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_max_byte1 (XFontStruct *i, int j) + { + i->max_byte1 = j; + } + +-int XFontStruct_min_byte1(i) +-XFontStruct* i; ++int ++XFontStruct_min_byte1 (XFontStruct *i) + { + return(i->min_byte1); + } + +-void set_XFontStruct_min_byte1(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_min_byte1 (XFontStruct *i, int j) + { + i->min_byte1 = j; + } + +-int XFontStruct_max_char_or_byte2(i) +-XFontStruct* i; ++int ++XFontStruct_max_char_or_byte2 (XFontStruct *i) + { + return(i->max_char_or_byte2); + } + +-void set_XFontStruct_max_char_or_byte2(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_max_char_or_byte2 (XFontStruct *i, int j) + { + i->max_char_or_byte2 = j; + } + +-int XFontStruct_min_char_or_byte2(i) +-XFontStruct* i; ++int ++XFontStruct_min_char_or_byte2 (XFontStruct *i) + { + return(i->min_char_or_byte2); + } + +-void set_XFontStruct_min_char_or_byte2(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_min_char_or_byte2 (XFontStruct *i, int j) + { + i->min_char_or_byte2 = j; + } + +-int XFontStruct_direction(i) +-XFontStruct* i; ++int ++XFontStruct_direction (XFontStruct *i) + { + return(i->direction); + } + +-void set_XFontStruct_direction(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_direction (XFontStruct *i, int j) + { + i->direction = j; + } + +-int XFontStruct_fid(i) +-XFontStruct* i; ++int ++XFontStruct_fid (XFontStruct *i) + { + return(i->fid); + } + +-void set_XFontStruct_fid(i, j) +-XFontStruct* i; +-int j; ++void ++set_XFontStruct_fid (XFontStruct *i, int j) + { + i->fid = j; + } + +-long XFontStruct_ext_data(i) +-XFontStruct* i; ++long ++XFontStruct_ext_data (XFontStruct *i) + { + return((long) i->ext_data); + } + +-void set_XFontStruct_ext_data(i, j) +-XFontStruct* i; +-long j; ++void ++set_XFontStruct_ext_data (XFontStruct *i, long j) + { + i->ext_data = (XExtData *) j; + } +@@ -393,58 +371,55 @@ long j; + + /********* XTextItem functions *****/ + +-long make_XTextItem (){ ++long ++make_XTextItem (void){ + return ((long) calloc(1, sizeof(XTextItem))); + } + +-int XTextItem_font(i) +-XTextItem* i; ++int ++XTextItem_font (XTextItem *i) + { + return(i->font); + } + +-void set_XTextItem_font(i, j) +-XTextItem* i; +-int j; ++void ++set_XTextItem_font (XTextItem *i, int j) + { + i->font = j; + } + +-int XTextItem_delta(i) +-XTextItem* i; ++int ++XTextItem_delta (XTextItem *i) + { + return(i->delta); + } + +-void set_XTextItem_delta(i, j) +-XTextItem* i; +-int j; ++void ++set_XTextItem_delta (XTextItem *i, int j) + { + i->delta = j; + } + +-int XTextItem_nchars(i) +-XTextItem* i; ++int ++XTextItem_nchars (XTextItem *i) + { + return(i->nchars); + } + +-void set_XTextItem_nchars(i, j) +-XTextItem* i; +-int j; ++void ++set_XTextItem_nchars (XTextItem *i, int j) + { + i->nchars = j; + } + +-long XTextItem_chars(i) +-XTextItem* i; ++long ++XTextItem_chars (XTextItem *i) + { + return((long) i->chars); + } + +-void set_XTextItem_chars(i, j) +-XTextItem* i; +-long j; ++void ++set_XTextItem_chars (XTextItem *i, long j) + { + i->chars = (char *) j; + } +@@ -452,32 +427,31 @@ long j; + + /********* XChar2b functions *****/ + +-long make_XChar2b (){ ++long ++make_XChar2b (void){ + return ((long) calloc(1, sizeof(XChar2b))); + } + +-char XChar2b_byte2(i) +-XChar2b* i; ++char ++XChar2b_byte2 (XChar2b *i) + { + return(i->byte2); + } + +-void set_XChar2b_byte2(i, j) +-XChar2b* i; +-char j; ++void ++set_XChar2b_byte2 (XChar2b *i, int j) + { + i->byte2 = j; + } + +-char XChar2b_byte1(i) +-XChar2b* i; ++char ++XChar2b_byte1 (XChar2b *i) + { + return(i->byte1); + } + +-void set_XChar2b_byte1(i, j) +-XChar2b* i; +-char j; ++void ++set_XChar2b_byte1 (XChar2b *i, int j) + { + i->byte1 = j; + } +@@ -485,58 +459,55 @@ char j; + + /********* XTextItem16 functions *****/ + +-long make_XTextItem16 (){ ++long ++make_XTextItem16 (void){ + return ((long) calloc(1, sizeof(XTextItem16))); + } + +-int XTextItem16_font(i) +-XTextItem16* i; ++int ++XTextItem16_font (XTextItem16 *i) + { + return(i->font); + } + +-void set_XTextItem16_font(i, j) +-XTextItem16* i; +-int j; ++void ++set_XTextItem16_font (XTextItem16 *i, int j) + { + i->font = j; + } + +-int XTextItem16_delta(i) +-XTextItem16* i; ++int ++XTextItem16_delta (XTextItem16 *i) + { + return(i->delta); + } + +-void set_XTextItem16_delta(i, j) +-XTextItem16* i; +-int j; ++void ++set_XTextItem16_delta (XTextItem16 *i, int j) + { + i->delta = j; + } + +-int XTextItem16_nchars(i) +-XTextItem16* i; ++int ++XTextItem16_nchars (XTextItem16 *i) + { + return(i->nchars); + } + +-void set_XTextItem16_nchars(i, j) +-XTextItem16* i; +-int j; ++void ++set_XTextItem16_nchars (XTextItem16 *i, int j) + { + i->nchars = j; + } + +-long XTextItem16_chars(i) +-XTextItem16* i; ++long ++XTextItem16_chars (XTextItem16 *i) + { + return((long) i->chars); + } + +-void set_XTextItem16_chars(i, j) +-XTextItem16* i; +-long j; ++void ++set_XTextItem16_chars (XTextItem16 *i, long j) + { + i->chars = (XChar2b *) j; + } +@@ -544,71 +515,67 @@ long j; + + /********* XEDataObject functions *****/ + +-long make_XEDataObject (){ ++long ++make_XEDataObject (void){ + return ((long) calloc(1, sizeof(XEDataObject))); + } + +-long XEDataObject_font(i) +-XEDataObject* i; ++long ++XEDataObject_font (XEDataObject *i) + { + return((long) i->font); + } + +-void set_XEDataObject_font(i, j) +-XEDataObject* i; +-long j; ++void ++set_XEDataObject_font (XEDataObject *i, long j) + { + i->font = (XFontStruct *) j; + } + +-long XEDataObject_pixmap_format(i) +-XEDataObject* i; ++long ++XEDataObject_pixmap_format (XEDataObject *i) + { + return((long) i->pixmap_format); + } + +-void set_XEDataObject_pixmap_format(i, j) +-XEDataObject* i; +-long j; ++void ++set_XEDataObject_pixmap_format (XEDataObject *i, long j) + { + i->pixmap_format = (ScreenFormat *) j; + } + +-long XEDataObject_screen(i) +-XEDataObject* i; ++long ++XEDataObject_screen (XEDataObject *i) + { + return((long) i->screen); + } + +-void set_XEDataObject_screen(i, j) +-XEDataObject* i; +-long j; ++void ++set_XEDataObject_screen (XEDataObject *i, long j) + { + i->screen = (Screen *) j; + } + +-long XEDataObject_visual(i) +-XEDataObject* i; ++long ++XEDataObject_visual (XEDataObject *i) + { + return((long) i->visual); + } + +-void set_XEDataObject_visual(i, j) +-XEDataObject* i; +-long j; ++void ++set_XEDataObject_visual (XEDataObject *i, long j) + { + i->visual = (Visual *) j; + } + +-GC XEDataObject_gc(i) +-XEDataObject* i; ++GC ++XEDataObject_gc (XEDataObject *i) + { + return(i->gc); + } + +-void set_XEDataObject_gc(i, j) +-XEDataObject* i; +-GC j; ++void ++set_XEDataObject_gc (XEDataObject *i, GC j) + { + i->gc = j; + } +@@ -616,242 +583,189 @@ GC j; + + /********* XSizeHints functions *****/ + +-long make_XSizeHints (){ ++long ++make_XSizeHints (void){ + return ((long) calloc(1, sizeof(XSizeHints))); + } + +-int XSizeHints_win_gravity(i) +-XSizeHints *i; ++int XSizeHints_win_gravity(XSizeHints *i) + { + return(i->win_gravity); + } + +-void set_XSizeHints_win_gravity(i, j) +-XSizeHints *i; +-int j; ++void set_XSizeHints_win_gravity(XSizeHints *i,int j) + { + i->win_gravity = j; + } + +-int XSizeHints_base_height(i) +-XSizeHints* i; ++int XSizeHints_base_height(XSizeHints* i) + { + return(i->base_height); + } + +-void set_XSizeHints_base_height(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_base_height(XSizeHints* i,int j) + { + i->base_height = j; + } + +-int XSizeHints_base_width(i) +-XSizeHints* i; ++int XSizeHints_base_width(XSizeHints* i) + { + return(i->base_width); + } + +-void set_XSizeHints_base_width(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_base_width(XSizeHints* i,int j) + { + i->base_width = j; + } + +-int XSizeHints_height_inc(i) +-XSizeHints* i; ++int XSizeHints_height_inc(XSizeHints* i) + { + return(i->height_inc); + } + +-void set_XSizeHints_height_inc(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_height_inc(XSizeHints* i,int j) + { + i->height_inc = j; + } + +-int XSizeHints_width_inc(i) +-XSizeHints* i; ++int XSizeHints_width_inc(XSizeHints* i) + { + return(i->width_inc); + } + +-void set_XSizeHints_width_inc(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_width_inc(XSizeHints* i,int j) + { + i->width_inc = j; + } + +-int XSizeHints_max_height(i) +-XSizeHints* i; ++int XSizeHints_max_height(XSizeHints* i) + { + return(i->max_height); + } + +-void set_XSizeHints_max_height(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_max_height(XSizeHints* i,int j) + { + i->max_height = j; + } + +-int XSizeHints_max_width(i) +-XSizeHints* i; ++int XSizeHints_max_width(XSizeHints* i) + { + return(i->max_width); + } + +-void set_XSizeHints_max_width(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_max_width(XSizeHints* i,int j) + { + i->max_width = j; + } + +-int XSizeHints_min_height(i) +-XSizeHints* i; ++int XSizeHints_min_height(XSizeHints* i) + { + return(i->min_height); + } + +-void set_XSizeHints_min_height(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_min_height(XSizeHints* i,int j) + { + i->min_height = j; + } + +-int XSizeHints_min_width(i) +-XSizeHints* i; ++int XSizeHints_min_width(XSizeHints* i) + { + return(i->min_width); + } + +-void set_XSizeHints_min_width(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_min_width(XSizeHints* i,int j) + { + i->min_width = j; + } + +-int XSizeHints_height(i) +-XSizeHints* i; ++int XSizeHints_height(XSizeHints* i) + { + return(i->height); + } + +-void set_XSizeHints_height(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_height(XSizeHints* i,int j) + { + i->height = j; + } + +-int XSizeHints_width(i) +-XSizeHints* i; ++int XSizeHints_width(XSizeHints* i) + { + return(i->width); + } + +-void set_XSizeHints_width(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_width(XSizeHints* i,int j) + { + i->width = j; + } + +-int XSizeHints_y(i) +-XSizeHints* i; ++int XSizeHints_y(XSizeHints* i) + { + return(i->y); + } + +-void set_XSizeHints_y(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_y(XSizeHints* i,int j) + { + i->y = j; + } + +-int XSizeHints_x(i) +-XSizeHints* i; ++int XSizeHints_x(XSizeHints* i) + { + return(i->x); + } + +-void set_XSizeHints_x(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_x(XSizeHints* i,int j) + { + i->x = j; + } + +-int XSizeHints_flags(i) +-XSizeHints* i; ++int XSizeHints_flags(XSizeHints* i) + { + return(i->flags); + } + +-void set_XSizeHints_flags(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_flags(XSizeHints* i,int j) + { + i->flags = j; + } + + +-int XSizeHints_max_aspect_x(i) +-XSizeHints* i; ++int XSizeHints_max_aspect_x(XSizeHints* i) + { + return(i->max_aspect.x); + } + +-void set_XSizeHints_max_aspect_x(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_max_aspect_x(XSizeHints* i,int j) + { + i->max_aspect.x = j; + } + +-int XSizeHints_max_aspect_y(i) +-XSizeHints* i; ++int XSizeHints_max_aspect_y(XSizeHints* i) + { + return(i->max_aspect.y); + } + +-void set_XSizeHints_max_aspect_y(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_max_aspect_y(XSizeHints* i,int j) + { + i->max_aspect.y = j; + } + +-int XSizeHints_min_aspect_x(i) +-XSizeHints* i; ++int XSizeHints_min_aspect_x(XSizeHints* i) + { + return(i->min_aspect.x); + } + +-void set_XSizeHints_min_aspect_x(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_min_aspect_x(XSizeHints* i,int j) + { + i->min_aspect.x = j; + } + + +-int XSizeHints_min_aspect_y(i) +-XSizeHints* i; ++int XSizeHints_min_aspect_y(XSizeHints* i) + { + return(i->min_aspect.y); + } + +-void set_XSizeHints_min_aspect_y(i, j) +-XSizeHints* i; +-int j; ++void set_XSizeHints_min_aspect_y(XSizeHints* i,int j) + { + i->min_aspect.y = j; + } +@@ -859,123 +773,115 @@ int j; + + /********* XWMHints functions *****/ + +-long make_XWMHints (){ ++long ++make_XWMHints (void){ + return ((long) calloc(1, sizeof(XWMHints))); + } + +-int XWMHints_window_group(i) +-XWMHints* i; ++int ++XWMHints_window_group (XWMHints *i) + { + return(i->window_group); + } + +-void set_XWMHints_window_group(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_window_group (XWMHints *i, int j) + { + i->window_group = j; + } + +-int XWMHints_icon_mask(i) +-XWMHints* i; ++int ++XWMHints_icon_mask (XWMHints *i) + { + return(i->icon_mask); + } + +-void set_XWMHints_icon_mask(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_icon_mask (XWMHints *i, int j) + { + i->icon_mask = j; + } + +-int XWMHints_icon_y(i) +-XWMHints* i; ++int ++XWMHints_icon_y (XWMHints *i) + { + return(i->icon_y); + } + +-void set_XWMHints_icon_y(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_icon_y (XWMHints *i, int j) + { + i->icon_y = j; + } + +-int XWMHints_icon_x(i) +-XWMHints* i; ++int ++XWMHints_icon_x (XWMHints *i) + { + return(i->icon_x); + } + +-void set_XWMHints_icon_x(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_icon_x (XWMHints *i, int j) + { + i->icon_x = j; + } + +-int XWMHints_icon_window(i) +-XWMHints* i; ++int ++XWMHints_icon_window (XWMHints *i) + { + return(i->icon_window); + } + +-void set_XWMHints_icon_window(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_icon_window (XWMHints *i, int j) + { + i->icon_window = j; + } + +-int XWMHints_icon_pixmap(i) +-XWMHints* i; ++int ++XWMHints_icon_pixmap (XWMHints *i) + { + return(i->icon_pixmap); + } + +-void set_XWMHints_icon_pixmap(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_icon_pixmap (XWMHints *i, int j) + { + i->icon_pixmap = j; + } + +-int XWMHints_initial_state(i) +-XWMHints* i; ++int ++XWMHints_initial_state (XWMHints *i) + { + return(i->initial_state); + } + +-void set_XWMHints_initial_state(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_initial_state (XWMHints *i, int j) + { + i->initial_state = j; + } + +-int XWMHints_input(i) +-XWMHints* i; ++int ++XWMHints_input (XWMHints *i) + { + return(i->input); + } + +-void set_XWMHints_input(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_input (XWMHints *i, int j) + { + i->input = j; + } + +-int XWMHints_flags(i) +-XWMHints* i; ++int ++XWMHints_flags (XWMHints *i) + { + return(i->flags); + } + +-void set_XWMHints_flags(i, j) +-XWMHints* i; +-int j; ++void ++set_XWMHints_flags (XWMHints *i, int j) + { + i->flags = j; + } +@@ -983,58 +889,55 @@ int j; + + /********* XTextProperty functions *****/ + +-long make_XTextProperty (){ ++long ++make_XTextProperty (void){ + return ((long) calloc(1, sizeof(XTextProperty))); + } + +-int XTextProperty_nitems(i) +-XTextProperty *i; ++int ++XTextProperty_nitems (XTextProperty *i) + { + return(i->nitems); + } + +-void set_XTextProperty_nitems(i, j) +-XTextProperty* i; +-int j; ++void ++set_XTextProperty_nitems (XTextProperty *i, int j) + { + i->nitems = j; + } + +-int XTextProperty_format(i) +-XTextProperty* i; ++int ++XTextProperty_format (XTextProperty *i) + { + return(i->format); + } + +-void set_XTextProperty_format(i, j) +-XTextProperty* i; +-int j; ++void ++set_XTextProperty_format (XTextProperty *i, int j) + { + i->format = j; + } + +-int XTextProperty_encoding(i) +-XTextProperty* i; ++int ++XTextProperty_encoding (XTextProperty *i) + { + return(i->encoding); + } + +-void set_XTextProperty_encoding(i, j) +-XTextProperty* i; +-int j; ++void ++set_XTextProperty_encoding (XTextProperty *i, int j) + { + i->encoding = j; + } + +-long XTextProperty_value(i) +-XTextProperty* i; ++long ++XTextProperty_value (XTextProperty *i) + { + return((long) i->value); + } + +-void set_XTextProperty_value(i, j) +-XTextProperty* i; +-long j; ++void ++set_XTextProperty_value (XTextProperty *i, long j) + { + i->value = (unsigned char *) j; + } +@@ -1042,84 +945,79 @@ long j; + + /********* XIconSize functions *****/ + +-long make_XIconSize (){ ++long ++make_XIconSize (void){ + return ((long) calloc(1, sizeof(XIconSize))); + } + +-int XIconSize_height_inc(i) +-XIconSize* i; ++int ++XIconSize_height_inc (XIconSize *i) + { + return(i->height_inc); + } + +-void set_XIconSize_height_inc(i, j) +-XIconSize* i; +-int j; ++void ++set_XIconSize_height_inc (XIconSize *i, int j) + { + i->height_inc = j; + } + +-int XIconSize_width_inc(i) +-XIconSize* i; ++int ++XIconSize_width_inc (XIconSize *i) + { + return(i->width_inc); + } + +-void set_XIconSize_width_inc(i, j) +-XIconSize* i; +-int j; ++void ++set_XIconSize_width_inc (XIconSize *i, int j) + { + i->width_inc = j; + } + +-int XIconSize_max_height(i) +-XIconSize* i; ++int ++XIconSize_max_height (XIconSize *i) + { + return(i->max_height); + } + +-void set_XIconSize_max_height(i, j) +-XIconSize* i; +-int j; ++void ++set_XIconSize_max_height (XIconSize *i, int j) + { + i->max_height = j; + } + +-int XIconSize_max_width(i) +-XIconSize* i; ++int ++XIconSize_max_width (XIconSize *i) + { + return(i->max_width); + } + +-void set_XIconSize_max_width(i, j) +-XIconSize* i; +-int j; ++void ++set_XIconSize_max_width (XIconSize *i, int j) + { + i->max_width = j; + } + +-int XIconSize_min_height(i) +-XIconSize* i; ++int ++XIconSize_min_height (XIconSize *i) + { + return(i->min_height); + } + +-void set_XIconSize_min_height(i, j) +-XIconSize* i; +-int j; ++void ++set_XIconSize_min_height (XIconSize *i, int j) + { + i->min_height = j; + } + +-int XIconSize_min_width(i) +-XIconSize* i; ++int ++XIconSize_min_width (XIconSize *i) + { + return(i->min_width); + } + +-void set_XIconSize_min_width(i, j) +-XIconSize* i; +-int j; ++void ++set_XIconSize_min_width (XIconSize *i, int j) + { + i->min_width = j; + } +@@ -1127,32 +1025,31 @@ int j; + + /********* XClassHint functions *****/ + +-long make_XClassHint (){ ++long ++make_XClassHint (void){ + return ((long) calloc(1, sizeof(XClassHint))); + } + +-long XClassHint_res_class(i) +-XClassHint* i; ++long ++XClassHint_res_class (XClassHint *i) + { + return((long) i->res_class); + } + +-void set_XClassHint_res_class(i, j) +-XClassHint* i; +-long j; ++void ++set_XClassHint_res_class (XClassHint *i, long j) + { + i->res_class = (char *) j; + } + +-long XClassHint_res_name(i) +-XClassHint* i; ++long ++XClassHint_res_name (XClassHint *i) + { + return((long) i->res_name); + } + +-void set_XClassHint_res_name(i, j) +-XClassHint* i; +-long j; ++void ++set_XClassHint_res_name (XClassHint *i, long j) + { + i->res_name = (char *) j; + } +@@ -1160,32 +1057,31 @@ long j; + + /********* XComposeStatus functions *****/ + +-long make_XComposeStatus (){ ++long ++make_XComposeStatus (void){ + return ((long) calloc(1, sizeof(XComposeStatus))); + } + +-int XComposeStatus_chars_matched(i) +-XComposeStatus* i; ++int ++XComposeStatus_chars_matched (XComposeStatus *i) + { + return(i->chars_matched); + } + +-void set_XComposeStatus_chars_matched(i, j) +-XComposeStatus* i; +-int j; ++void ++set_XComposeStatus_chars_matched (XComposeStatus *i, int j) + { + i->chars_matched = j; + } + +-long XComposeStatus_compose_ptr(i) +-XComposeStatus* i; ++long ++XComposeStatus_compose_ptr (XComposeStatus *i) + { + return((long) i->compose_ptr); + } + +-void set_XComposeStatus_compose_ptr(i, j) +-XComposeStatus* i; +-long j; ++void ++set_XComposeStatus_compose_ptr (XComposeStatus *i, long j) + { + i->compose_ptr = (XPointer) j; + } +@@ -1193,136 +1089,127 @@ long j; + + /********* XVisualInfo functions *****/ + +-long make_XVisualInfo (){ ++long ++make_XVisualInfo (void){ + return ((long) calloc(1, sizeof(XVisualInfo))); + } + +-int XVisualInfo_bits_per_rgb(i) +-XVisualInfo* i; ++int ++XVisualInfo_bits_per_rgb (XVisualInfo *i) + { + return(i->bits_per_rgb); + } + +-void set_XVisualInfo_bits_per_rgb(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_bits_per_rgb (XVisualInfo *i, int j) + { + i->bits_per_rgb = j; + } + +-int XVisualInfo_colormap_size(i) +-XVisualInfo* i; ++int ++XVisualInfo_colormap_size (XVisualInfo *i) + { + return(i->colormap_size); + } + +-void set_XVisualInfo_colormap_size(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_colormap_size (XVisualInfo *i, int j) + { + i->colormap_size = j; + } + +-int XVisualInfo_blue_mask(i) +-XVisualInfo* i; ++int ++XVisualInfo_blue_mask (XVisualInfo *i) + { + return(i->blue_mask); + } + +-void set_XVisualInfo_blue_mask(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_blue_mask (XVisualInfo *i, int j) + { + i->blue_mask = j; + } + +-int XVisualInfo_green_mask(i) +-XVisualInfo* i; ++int ++XVisualInfo_green_mask (XVisualInfo *i) + { + return(i->green_mask); + } + +-void set_XVisualInfo_green_mask(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_green_mask (XVisualInfo *i, int j) + { + i->green_mask = j; + } + +-int XVisualInfo_red_mask(i) +-XVisualInfo* i; ++int ++XVisualInfo_red_mask (XVisualInfo *i) + { + return(i->red_mask); + } + +-void set_XVisualInfo_red_mask(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_red_mask (XVisualInfo *i, int j) + { + i->red_mask = j; + } + +-int XVisualInfo_class(i) +-XVisualInfo* i; ++int ++XVisualInfo_class (XVisualInfo *i) + { + return(i->class); + } + +-void set_XVisualInfo_class(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_class (XVisualInfo *i, int j) + { + i->class = j; + } + +-int XVisualInfo_depth(i) +-XVisualInfo* i; ++int ++XVisualInfo_depth (XVisualInfo *i) + { + return(i->depth); + } + +-void set_XVisualInfo_depth(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_depth (XVisualInfo *i, int j) + { + i->depth = j; + } + +-int XVisualInfo_screen(i) +-XVisualInfo* i; ++int ++XVisualInfo_screen (XVisualInfo *i) + { + return(i->screen); + } + +-void set_XVisualInfo_screen(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_screen (XVisualInfo *i, int j) + { + i->screen = j; + } + +-int XVisualInfo_visualid(i) +-XVisualInfo* i; ++int ++XVisualInfo_visualid (XVisualInfo *i) + { + return(i->visualid); + } + +-void set_XVisualInfo_visualid(i, j) +-XVisualInfo* i; +-int j; ++void ++set_XVisualInfo_visualid (XVisualInfo *i, int j) + { + i->visualid = j; + } + +-long XVisualInfo_visual(i) +-XVisualInfo* i; ++long ++XVisualInfo_visual (XVisualInfo *i) + { + return((long) i->visual); + } + +-void set_XVisualInfo_visual(i, j) +-XVisualInfo* i; +-long j; ++void ++set_XVisualInfo_visual (XVisualInfo *i, long j) + { + i->visual = (Visual *) j; + } +@@ -1330,136 +1217,127 @@ long j; + + /********* XStandardColormap functions *****/ + +-long make_XStandardColormap (){ ++long ++make_XStandardColormap (void){ + return ((long) calloc(1, sizeof(XStandardColormap))); + } + +-int XStandardColormap_killid(i) +-XStandardColormap* i; ++int ++XStandardColormap_killid (XStandardColormap *i) + { + return(i->killid); + } + +-void set_XStandardColormap_killid(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_killid (XStandardColormap *i, int j) + { + i->killid = j; + } + +-int XStandardColormap_visualid(i) +-XStandardColormap* i; ++int ++XStandardColormap_visualid (XStandardColormap *i) + { + return(i->visualid); + } + +-void set_XStandardColormap_visualid(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_visualid (XStandardColormap *i, int j) + { + i->visualid = j; + } + +-int XStandardColormap_base_pixel(i) +-XStandardColormap* i; ++int ++XStandardColormap_base_pixel (XStandardColormap *i) + { + return(i->base_pixel); + } + +-void set_XStandardColormap_base_pixel(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_base_pixel (XStandardColormap *i, int j) + { + i->base_pixel = j; + } + +-int XStandardColormap_blue_mult(i) +-XStandardColormap* i; ++int ++XStandardColormap_blue_mult (XStandardColormap *i) + { + return(i->blue_mult); + } + +-void set_XStandardColormap_blue_mult(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_blue_mult (XStandardColormap *i, int j) + { + i->blue_mult = j; + } + +-int XStandardColormap_blue_max(i) +-XStandardColormap* i; ++int ++XStandardColormap_blue_max (XStandardColormap *i) + { + return(i->blue_max); + } + +-void set_XStandardColormap_blue_max(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_blue_max (XStandardColormap *i, int j) + { + i->blue_max = j; + } + +-int XStandardColormap_green_mult(i) +-XStandardColormap* i; ++int ++XStandardColormap_green_mult (XStandardColormap *i) + { + return(i->green_mult); + } + +-void set_XStandardColormap_green_mult(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_green_mult (XStandardColormap *i, int j) + { + i->green_mult = j; + } + +-int XStandardColormap_green_max(i) +-XStandardColormap* i; ++int ++XStandardColormap_green_max (XStandardColormap *i) + { + return(i->green_max); + } + +-void set_XStandardColormap_green_max(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_green_max (XStandardColormap *i, int j) + { + i->green_max = j; + } + +-int XStandardColormap_red_mult(i) +-XStandardColormap* i; ++int ++XStandardColormap_red_mult (XStandardColormap *i) + { + return(i->red_mult); + } + +-void set_XStandardColormap_red_mult(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_red_mult (XStandardColormap *i, int j) + { + i->red_mult = j; + } + +-int XStandardColormap_red_max(i) +-XStandardColormap* i; ++int ++XStandardColormap_red_max (XStandardColormap *i) + { + return(i->red_max); + } + +-void set_XStandardColormap_red_max(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_red_max (XStandardColormap *i, int j) + { + i->red_max = j; + } + +-int XStandardColormap_colormap(i) +-XStandardColormap* i; ++int ++XStandardColormap_colormap (XStandardColormap *i) + { + return(i->colormap); + } + +-void set_XStandardColormap_colormap(i, j) +-XStandardColormap* i; +-int j; ++void ++set_XStandardColormap_colormap (XStandardColormap *i, int j) + { + i->colormap = j; + } +--- gcl27-2.7.1.orig/xgcl-2/XStruct-4.c ++++ gcl27-2.7.1/xgcl-2/XStruct-4.c +@@ -30,58 +30,54 @@ + + /********* XExtCodes functions *****/ + +-long make_XExtCodes (){ ++long make_XExtCodes (void) ++{ + return ((long) calloc(1, sizeof(XExtCodes))); + } + +-int XExtCodes_first_error(i) +-XExtCodes* i; ++int XExtCodes_first_error (XExtCodes* i) + { + return(i->first_error); + } + +-void set_XExtCodes_first_error(i, j) +-XExtCodes* i; +-int j; ++void ++set_XExtCodes_first_error (XExtCodes *i, int j) + { + i->first_error = j; + } + +-int XExtCodes_first_event(i) +-XExtCodes* i; ++int ++XExtCodes_first_event (XExtCodes *i) + { + return(i->first_event); + } + +-void set_XExtCodes_first_event(i, j) +-XExtCodes* i; +-int j; ++void ++set_XExtCodes_first_event (XExtCodes *i, int j) + { + i->first_event = j; + } + +-int XExtCodes_major_opcode(i) +-XExtCodes* i; ++int ++XExtCodes_major_opcode (XExtCodes *i) + { + return(i->major_opcode); + } + +-void set_XExtCodes_major_opcode(i, j) +-XExtCodes* i; +-int j; ++void ++set_XExtCodes_major_opcode (XExtCodes *i, int j) + { + i->major_opcode = j; + } + +-int XExtCodes_extension(i) +-XExtCodes* i; ++int ++XExtCodes_extension (XExtCodes *i) + { + return(i->extension); + } + +-void set_XExtCodes_extension(i, j) +-XExtCodes* i; +-int j; ++void ++set_XExtCodes_extension (XExtCodes *i, int j) + { + i->extension = j; + } +@@ -89,45 +85,43 @@ int j; + + /********* XPixmapFormatValues functions *****/ + +-long make_XPixmapFormatValues (){ ++long ++make_XPixmapFormatValues (void){ + return ((long) calloc(1, sizeof(XPixmapFormatValues))); + } + +-int XPixmapFormatValues_scanline_pad(i) +-XPixmapFormatValues* i; ++int ++XPixmapFormatValues_scanline_pad (XPixmapFormatValues *i) + { + return(i->scanline_pad); + } + +-void set_XPixmapFormatValues_scanline_pad(i, j) +-XPixmapFormatValues* i; +-int j; ++void ++set_XPixmapFormatValues_scanline_pad (XPixmapFormatValues *i, int j) + { + i->scanline_pad = j; + } + +-int XPixmapFormatValues_bits_per_pixel(i) +-XPixmapFormatValues* i; ++int ++XPixmapFormatValues_bits_per_pixel (XPixmapFormatValues *i) + { + return(i->bits_per_pixel); + } + +-void set_XPixmapFormatValues_bits_per_pixel(i, j) +-XPixmapFormatValues* i; +-int j; ++void ++set_XPixmapFormatValues_bits_per_pixel (XPixmapFormatValues *i, int j) + { + i->bits_per_pixel = j; + } + +-int XPixmapFormatValues_depth(i) +-XPixmapFormatValues* i; ++int ++XPixmapFormatValues_depth (XPixmapFormatValues *i) + { + return(i->depth); + } + +-void set_XPixmapFormatValues_depth(i, j) +-XPixmapFormatValues* i; +-int j; ++void ++set_XPixmapFormatValues_depth (XPixmapFormatValues *i, int j) + { + i->depth = j; + } +@@ -135,305 +129,283 @@ int j; + + /********* XGCValues functions *****/ + +-long make_XGCValues (){ ++long ++make_XGCValues (void){ + return ((long) calloc(1, sizeof(XGCValues))); + } + +-char XGCValues_dashes(i) +-XGCValues* i; ++char ++XGCValues_dashes (XGCValues *i) + { + return(i->dashes); + } + +-void set_XGCValues_dashes(i, j) +-XGCValues* i; +-char j; ++void ++set_XGCValues_dashes (XGCValues *i, int j) + { + i->dashes = j; + } + +-int XGCValues_dash_offset(i) +-XGCValues* i; ++int ++XGCValues_dash_offset (XGCValues *i) + { + return(i->dash_offset); + } + +-void set_XGCValues_dash_offset(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_dash_offset (XGCValues *i, int j) + { + i->dash_offset = j; + } + +-int XGCValues_clip_mask(i) +-XGCValues* i; ++int ++XGCValues_clip_mask (XGCValues *i) + { + return(i->clip_mask); + } + +-void set_XGCValues_clip_mask(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_clip_mask (XGCValues *i, int j) + { + i->clip_mask = j; + } + +-int XGCValues_clip_y_origin(i) +-XGCValues* i; ++int ++XGCValues_clip_y_origin (XGCValues *i) + { + return(i->clip_y_origin); + } + +-void set_XGCValues_clip_y_origin(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_clip_y_origin (XGCValues *i, int j) + { + i->clip_y_origin = j; + } + +-int XGCValues_clip_x_origin(i) +-XGCValues* i; ++int ++XGCValues_clip_x_origin (XGCValues *i) + { + return(i->clip_x_origin); + } + +-void set_XGCValues_clip_x_origin(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_clip_x_origin (XGCValues *i, int j) + { + i->clip_x_origin = j; + } + +-int XGCValues_graphics_exposures(i) +-XGCValues* i; ++int ++XGCValues_graphics_exposures (XGCValues *i) + { + return(i->graphics_exposures); + } + +-void set_XGCValues_graphics_exposures(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_graphics_exposures (XGCValues *i, int j) + { + i->graphics_exposures = j; + } + +-int XGCValues_subwindow_mode(i) +-XGCValues* i; ++int ++XGCValues_subwindow_mode (XGCValues *i) + { + return(i->subwindow_mode); + } + +-void set_XGCValues_subwindow_mode(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_subwindow_mode (XGCValues *i, int j) + { + i->subwindow_mode = j; + } + +-int XGCValues_font(i) +-XGCValues* i; ++int ++XGCValues_font (XGCValues *i) + { + return(i->font); + } + +-void set_XGCValues_font(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_font (XGCValues *i, int j) + { + i->font = j; + } + +-int XGCValues_ts_y_origin(i) +-XGCValues* i; ++int ++XGCValues_ts_y_origin (XGCValues *i) + { + return(i->ts_y_origin); + } + +-void set_XGCValues_ts_y_origin(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_ts_y_origin (XGCValues *i, int j) + { + i->ts_y_origin = j; + } + +-int XGCValues_ts_x_origin(i) +-XGCValues* i; ++int ++XGCValues_ts_x_origin (XGCValues *i) + { + return(i->ts_x_origin); + } + +-void set_XGCValues_ts_x_origin(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_ts_x_origin (XGCValues *i, int j) + { + i->ts_x_origin = j; + } + +-int XGCValues_stipple(i) +-XGCValues* i; ++int ++XGCValues_stipple (XGCValues *i) + { + return(i->stipple); + } + +-void set_XGCValues_stipple(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_stipple (XGCValues *i, int j) + { + i->stipple = j; + } + +-int XGCValues_tile(i) +-XGCValues* i; ++int ++XGCValues_tile (XGCValues *i) + { + return(i->tile); + } + +-void set_XGCValues_tile(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_tile (XGCValues *i, int j) + { + i->tile = j; + } + +-int XGCValues_arc_mode(i) +-XGCValues* i; ++int ++XGCValues_arc_mode (XGCValues *i) + { + return(i->arc_mode); + } + +-void set_XGCValues_arc_mode(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_arc_mode (XGCValues *i, int j) + { + i->arc_mode = j; + } + +-int XGCValues_fill_rule(i) +-XGCValues* i; ++int ++XGCValues_fill_rule (XGCValues *i) + { + return(i->fill_rule); + } + +-void set_XGCValues_fill_rule(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_fill_rule (XGCValues *i, int j) + { + i->fill_rule = j; + } + +-int XGCValues_fill_style(i) +-XGCValues* i; ++int ++XGCValues_fill_style (XGCValues *i) + { + return(i->fill_style); + } + +-void set_XGCValues_fill_style(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_fill_style (XGCValues *i, int j) + { + i->fill_style = j; + } + +-int XGCValues_join_style(i) +-XGCValues* i; ++int ++XGCValues_join_style (XGCValues *i) + { + return(i->join_style); + } + +-void set_XGCValues_join_style(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_join_style (XGCValues *i, int j) + { + i->join_style = j; + } + +-int XGCValues_cap_style(i) +-XGCValues* i; ++int ++XGCValues_cap_style (XGCValues *i) + { + return(i->cap_style); + } + +-void set_XGCValues_cap_style(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_cap_style (XGCValues *i, int j) + { + i->cap_style = j; + } + +-int XGCValues_line_style(i) +-XGCValues* i; ++int ++XGCValues_line_style (XGCValues *i) + { + return(i->line_style); + } + +-void set_XGCValues_line_style(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_line_style (XGCValues *i, int j) + { + i->line_style = j; + } + +-int XGCValues_line_width(i) +-XGCValues* i; ++int ++XGCValues_line_width (XGCValues *i) + { + return(i->line_width); + } + +-void set_XGCValues_line_width(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_line_width (XGCValues *i, int j) + { + i->line_width = j; + } + +-int XGCValues_background(i) +-XGCValues* i; ++int ++XGCValues_background (XGCValues *i) + { + return(i->background); + } + +-void set_XGCValues_background(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_background (XGCValues *i, int j) + { + i->background = j; + } + +-int XGCValues_foreground(i) +-XGCValues* i; ++int ++XGCValues_foreground (XGCValues *i) + { + return(i->foreground); + } + +-void set_XGCValues_foreground(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_foreground (XGCValues *i, int j) + { + i->foreground = j; + } + +-int XGCValues_plane_mask(i) +-XGCValues* i; ++int ++XGCValues_plane_mask (XGCValues *i) + { + return(i->plane_mask); + } + +-void set_XGCValues_plane_mask(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_plane_mask (XGCValues *i, int j) + { + i->plane_mask = j; + } + +-int XGCValues_function(i) +-XGCValues* i; ++int ++XGCValues_function (XGCValues *i) + { + return(i->function); + } + +-void set_XGCValues_function(i, j) +-XGCValues* i; +-int j; ++void ++set_XGCValues_function (XGCValues *i, int j) + { + i->function = j; + } +@@ -528,110 +500,103 @@ int j; + + /********* Visual functions *****/ + +-long make_Visual (){ ++long ++make_Visual (void){ + return ((long) calloc(1, sizeof(Visual))); + } + +-int Visual_map_entries(i) +-Visual* i; ++int ++Visual_map_entries (Visual *i) + { + return(i->map_entries); + } + +-void set_Visual_map_entries(i, j) +-Visual* i; +-int j; ++void ++set_Visual_map_entries (Visual *i, int j) + { + i->map_entries = j; + } + +-int Visual_bits_per_rgb(i) +-Visual* i; ++int ++Visual_bits_per_rgb (Visual *i) + { + return(i->bits_per_rgb); + } + +-void set_Visual_bits_per_rgb(i, j) +-Visual* i; +-int j; ++void ++set_Visual_bits_per_rgb (Visual *i, int j) + { + i->bits_per_rgb = j; + } + +-int Visual_blue_mask(i) +-Visual* i; ++int ++Visual_blue_mask (Visual *i) + { + return(i->blue_mask); + } + +-void set_Visual_blue_mask(i, j) +-Visual* i; +-int j; ++void ++set_Visual_blue_mask (Visual *i, int j) + { + i->blue_mask = j; + } + +-int Visual_green_mask(i) +-Visual* i; ++int ++Visual_green_mask (Visual *i) + { + return(i->green_mask); + } + +-void set_Visual_green_mask(i, j) +-Visual* i; +-int j; ++void ++set_Visual_green_mask (Visual *i, int j) + { + i->green_mask = j; + } + +-int Visual_red_mask(i) +-Visual* i; ++int ++Visual_red_mask (Visual *i) + { + return(i->red_mask); + } + +-void set_Visual_red_mask(i, j) +-Visual* i; +-int j; ++void ++set_Visual_red_mask (Visual *i, int j) + { + i->red_mask = j; + } + +-int Visual_class(i) +-Visual* i; ++int ++Visual_class (Visual *i) + { + return(i->class); + } + +-void set_Visual_class(i, j) +-Visual* i; +-int j; ++void ++set_Visual_class (Visual *i, int j) + { + i->class = j; + } + +-int Visual_visualid(i) +-Visual* i; ++int ++Visual_visualid (Visual *i) + { + return(i->visualid); + } + +-void set_Visual_visualid(i, j) +-Visual* i; +-int j; ++void ++set_Visual_visualid (Visual *i, int j) + { + i->visualid = j; + } + +-long Visual_ext_data(i) +-Visual* i; ++long ++Visual_ext_data (Visual *i) + { + return((long) i->ext_data); + } + +-void set_Visual_ext_data(i, j) +-Visual* i; +-long j; ++void ++set_Visual_ext_data (Visual *i, long j) + { + i->ext_data = (XExtData *) j; + } +@@ -639,45 +604,43 @@ long j; + + /********* Depth functions *****/ + +-long make_Depth (){ ++long ++make_Depth (void){ + return ((long) calloc(1, sizeof(Depth))); + } + +-long Depth_visuals(i) +-Depth* i; ++long ++Depth_visuals (Depth *i) + { + return((long) i->visuals); + } + +-void set_Depth_visuals(i, j) +-Depth* i; +-long j; ++void ++set_Depth_visuals (Depth *i, long j) + { + i->visuals = (Visual *) j; + } + +-int Depth_nvisuals(i) +-Depth* i; ++int ++Depth_nvisuals (Depth *i) + { + return(i->nvisuals); + } + +-void set_Depth_nvisuals(i, j) +-Depth* i; +-int j; ++void ++set_Depth_nvisuals (Depth *i, int j) + { + i->nvisuals = j; + } + +-int Depth_depth(i) +-Depth* i; ++int ++Depth_depth (Depth *i) + { + return(i->depth); + } + +-void set_Depth_depth(i, j) +-Depth* i; +-int j; ++void ++set_Depth_depth (Depth *i, int j) + { + i->depth = j; + } +@@ -685,266 +648,247 @@ int j; + + /********* Screen functions *****/ + +-long make_Screen (){ ++long ++make_Screen (void){ + return ((long) calloc(1, sizeof(Screen))); + } + +-int Screen_root_input_mask(i) +-Screen* i; ++int ++Screen_root_input_mask (Screen *i) + { + return(i->root_input_mask); + } + +-void set_Screen_root_input_mask(i, j) +-Screen* i; +-int j; ++void ++set_Screen_root_input_mask (Screen *i, int j) + { + i->root_input_mask = j; + } + +-int Screen_save_unders(i) +-Screen* i; ++int ++Screen_save_unders (Screen *i) + { + return(i->save_unders); + } + +-void set_Screen_save_unders(i, j) +-Screen* i; +-int j; ++void ++set_Screen_save_unders (Screen *i, int j) + { + i->save_unders = j; + } + +-int Screen_backing_store(i) +-Screen* i; ++int ++Screen_backing_store (Screen *i) + { + return(i->backing_store); + } + +-void set_Screen_backing_store(i, j) +-Screen* i; +-int j; ++void ++set_Screen_backing_store (Screen *i, int j) + { + i->backing_store = j; + } + +-int Screen_min_maps(i) +-Screen* i; ++int ++Screen_min_maps (Screen *i) + { + return(i->min_maps); + } + +-void set_Screen_min_maps(i, j) +-Screen* i; +-int j; ++void ++set_Screen_min_maps (Screen *i, int j) + { + i->min_maps = j; + } + +-int Screen_max_maps(i) +-Screen* i; ++int ++Screen_max_maps (Screen *i) + { + return(i->max_maps); + } + +-void set_Screen_max_maps(i, j) +-Screen* i; +-int j; ++void ++set_Screen_max_maps (Screen *i, int j) + { + i->max_maps = j; + } + +-int Screen_black_pixel(i) +-Screen* i; ++int ++Screen_black_pixel (Screen *i) + { + return(i->black_pixel); + } + +-void set_Screen_black_pixel(i, j) +-Screen* i; +-int j; ++void ++set_Screen_black_pixel (Screen *i, int j) + { + i->black_pixel = j; + } + +-int Screen_white_pixel(i) +-Screen* i; ++int ++Screen_white_pixel (Screen *i) + { + return(i->white_pixel); + } + +-void set_Screen_white_pixel(i, j) +-Screen* i; +-int j; ++void ++set_Screen_white_pixel (Screen *i, int j) + { + i->white_pixel = j; + } + +-int Screen_cmap(i) +-Screen* i; ++int ++Screen_cmap (Screen *i) + { + return(i->cmap); + } + +-void set_Screen_cmap(i, j) +-Screen* i; +-int j; ++void ++set_Screen_cmap (Screen *i, int j) + { + i->cmap = j; + } + +-long Screen_default_gc(i) +-Screen* i; ++long ++Screen_default_gc (Screen *i) + { + return((long) i->default_gc); + } + +-void set_Screen_default_gc(i, j) +-Screen* i; +-long j; ++void ++set_Screen_default_gc (Screen *i, long j) + { + i->default_gc = (GC) j; + } + +-long Screen_root_visual(i) +-Screen* i; ++long ++Screen_root_visual (Screen *i) + { + return((long) i->root_visual); + } + +-void set_Screen_root_visual(i, j) +-Screen* i; +-long j; ++void ++set_Screen_root_visual (Screen *i, long j) + { + i->root_visual = (Visual *) j; + } + +-int Screen_root_depth(i) +-Screen* i; ++int ++Screen_root_depth (Screen *i) + { + return(i->root_depth); + } + +-void set_Screen_root_depth(i, j) +-Screen* i; +-int j; ++void ++set_Screen_root_depth (Screen *i, int j) + { + i->root_depth = j; + } + +-long Screen_depths(i) +-Screen* i; ++long ++Screen_depths (Screen *i) + { + return((long) i->depths); + } + +-void set_Screen_depths(i, j) +-Screen* i; +-long j; ++void ++set_Screen_depths (Screen *i, long j) + { + i->depths = (Depth *) j; + } + +-int Screen_ndepths(i) +-Screen* i; ++int ++Screen_ndepths (Screen *i) + { + return(i->ndepths); + } + +-void set_Screen_ndepths(i, j) +-Screen* i; +-int j; ++void ++set_Screen_ndepths (Screen *i, int j) + { + i->ndepths = j; + } + +-int Screen_mheight(i) +-Screen* i; ++int ++Screen_mheight (Screen *i) + { + return(i->mheight); + } + +-void set_Screen_mheight(i, j) +-Screen* i; +-int j; ++void ++set_Screen_mheight (Screen *i, int j) + { + i->mheight = j; + } + +-int Screen_mwidth(i) +-Screen* i; ++int ++Screen_mwidth (Screen *i) + { + return(i->mwidth); + } + +-void set_Screen_mwidth(i, j) +-Screen* i; +-int j; ++void ++set_Screen_mwidth (Screen *i, int j) + { + i->mwidth = j; + } + +-int Screen_height(i) +-Screen* i; ++int ++Screen_height (Screen *i) + { + return(i->height); + } + +-void set_Screen_height(i, j) +-Screen* i; +-int j; ++void ++set_Screen_height (Screen *i, int j) + { + i->height = j; + } + +-int Screen_width(i) +-Screen* i; ++int ++Screen_width (Screen *i) + { + return(i->width); + } + +-void set_Screen_width(i, j) +-Screen* i; +-int j; ++void ++set_Screen_width (Screen *i, int j) + { + i->width = j; + } + +-int Screen_root(i) +-Screen* i; ++int ++Screen_root (Screen *i) + { + return(i->root); + } + +-void set_Screen_root(i, j) +-Screen* i; +-int j; ++void ++set_Screen_root (Screen *i, int j) + { + i->root = j; + } + +-long Screen_display(i) +-Screen* i; ++long ++Screen_display (Screen *i) + { + return((long) i->display); + } + +-void set_Screen_display(i, j) +-Screen* i; +-long j; ++void ++set_Screen_display (Screen *i, long j) + { + i->display = (struct _XDisplay *) j; + } + +-long Screen_ext_data(i) +-Screen* i; ++long ++Screen_ext_data (Screen *i) + { + return((long) i->ext_data); + } + +-void set_Screen_ext_data(i, j) +-Screen* i; +-long j; ++void ++set_Screen_ext_data (Screen *i, long j) + { + i->ext_data = (XExtData *) j; + } +@@ -952,58 +896,55 @@ long j; + + /********* ScreenFormat functions *****/ + +-long make_ScreenFormat (){ ++long ++make_ScreenFormat (void){ + return ((long) calloc(1, sizeof(ScreenFormat))); + } + +-int ScreenFormat_scanline_pad(i) +-ScreenFormat* i; ++int ++ScreenFormat_scanline_pad (ScreenFormat *i) + { + return(i->scanline_pad); + } + +-void set_ScreenFormat_scanline_pad(i, j) +-ScreenFormat* i; +-int j; ++void ++set_ScreenFormat_scanline_pad (ScreenFormat *i, int j) + { + i->scanline_pad = j; + } + +-int ScreenFormat_bits_per_pixel(i) +-ScreenFormat* i; ++int ++ScreenFormat_bits_per_pixel (ScreenFormat *i) + { + return(i->bits_per_pixel); + } + +-void set_ScreenFormat_bits_per_pixel(i, j) +-ScreenFormat* i; +-int j; ++void ++set_ScreenFormat_bits_per_pixel (ScreenFormat *i, int j) + { + i->bits_per_pixel = j; + } + +-int ScreenFormat_depth(i) +-ScreenFormat* i; ++int ++ScreenFormat_depth (ScreenFormat *i) + { + return(i->depth); + } + +-void set_ScreenFormat_depth(i, j) +-ScreenFormat* i; +-int j; ++void ++set_ScreenFormat_depth (ScreenFormat *i, int j) + { + i->depth = j; + } + +-long ScreenFormat_ext_data(i) +-ScreenFormat* i; ++long ++ScreenFormat_ext_data (ScreenFormat *i) + { + return((long) i->ext_data); + } + +-void set_ScreenFormat_ext_data(i, j) +-ScreenFormat* i; +-long j; ++void ++set_ScreenFormat_ext_data (ScreenFormat *i, long j) + { + i->ext_data = (XExtData *) j; + } +@@ -1011,201 +952,187 @@ long j; + + /********* XSetWindowAttributes functions *****/ + +-long make_XSetWindowAttributes (){ ++long ++make_XSetWindowAttributes (void){ + return ((long) calloc(1, sizeof(XSetWindowAttributes))); + } + +-int XSetWindowAttributes_cursor(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_cursor (XSetWindowAttributes *i) + { + return(i->cursor); + } + +-void set_XSetWindowAttributes_cursor(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_cursor (XSetWindowAttributes *i, int j) + { + i->cursor = j; + } + +-int XSetWindowAttributes_colormap(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_colormap (XSetWindowAttributes *i) + { + return(i->colormap); + } + +-void set_XSetWindowAttributes_colormap(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_colormap (XSetWindowAttributes *i, int j) + { + i->colormap = j; + } + +-int XSetWindowAttributes_override_redirect(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_override_redirect (XSetWindowAttributes *i) + { + return(i->override_redirect); + } + +-void set_XSetWindowAttributes_override_redirect(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_override_redirect (XSetWindowAttributes *i, int j) + { + i->override_redirect = j; + } + +-int XSetWindowAttributes_do_not_propagate_mask(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_do_not_propagate_mask (XSetWindowAttributes *i) + { + return(i->do_not_propagate_mask); + } + +-void set_XSetWindowAttributes_do_not_propagate_mask(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_do_not_propagate_mask (XSetWindowAttributes *i, int j) + { + i->do_not_propagate_mask = j; + } + +-int XSetWindowAttributes_event_mask(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_event_mask (XSetWindowAttributes *i) + { + return(i->event_mask); + } + +-void set_XSetWindowAttributes_event_mask(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_event_mask (XSetWindowAttributes *i, int j) + { + i->event_mask = j; + } + +-int XSetWindowAttributes_save_under(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_save_under (XSetWindowAttributes *i) + { + return(i->save_under); + } + +-void set_XSetWindowAttributes_save_under(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_save_under (XSetWindowAttributes *i, int j) + { + i->save_under = j; + } + +-int XSetWindowAttributes_backing_pixel(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_backing_pixel (XSetWindowAttributes *i) + { + return(i->backing_pixel); + } + +-void set_XSetWindowAttributes_backing_pixel(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_backing_pixel (XSetWindowAttributes *i, int j) + { + i->backing_pixel = j; + } + +-int XSetWindowAttributes_backing_planes(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_backing_planes (XSetWindowAttributes *i) + { + return(i->backing_planes); + } + +-void set_XSetWindowAttributes_backing_planes(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_backing_planes (XSetWindowAttributes *i, int j) + { + i->backing_planes = j; + } + +-int XSetWindowAttributes_backing_store(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_backing_store (XSetWindowAttributes *i) + { + return(i->backing_store); + } + +-void set_XSetWindowAttributes_backing_store(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_backing_store (XSetWindowAttributes *i, int j) + { + i->backing_store = j; + } + +-int XSetWindowAttributes_win_gravity(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_win_gravity (XSetWindowAttributes *i) + { + return(i->win_gravity); + } + +-void set_XSetWindowAttributes_win_gravity(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_win_gravity (XSetWindowAttributes *i, int j) + { + i->win_gravity = j; + } + +-int XSetWindowAttributes_bit_gravity(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_bit_gravity (XSetWindowAttributes *i) + { + return(i->bit_gravity); + } + +-void set_XSetWindowAttributes_bit_gravity(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_bit_gravity (XSetWindowAttributes *i, int j) + { + i->bit_gravity = j; + } + +-int XSetWindowAttributes_border_pixel(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_border_pixel (XSetWindowAttributes *i) + { + return(i->border_pixel); + } + +-void set_XSetWindowAttributes_border_pixel(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_border_pixel (XSetWindowAttributes *i, int j) + { + i->border_pixel = j; + } + +-int XSetWindowAttributes_border_pixmap(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_border_pixmap (XSetWindowAttributes *i) + { + return(i->border_pixmap); + } + +-void set_XSetWindowAttributes_border_pixmap(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_border_pixmap (XSetWindowAttributes *i, int j) + { + i->border_pixmap = j; + } + +-int XSetWindowAttributes_background_pixel(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_background_pixel (XSetWindowAttributes *i) + { + return(i->background_pixel); + } + +-void set_XSetWindowAttributes_background_pixel(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_background_pixel (XSetWindowAttributes *i, int j) + { + i->background_pixel = j; + } + +-int XSetWindowAttributes_background_pixmap(i) +-XSetWindowAttributes* i; ++int ++XSetWindowAttributes_background_pixmap (XSetWindowAttributes *i) + { + return(i->background_pixmap); + } + +-void set_XSetWindowAttributes_background_pixmap(i, j) +-XSetWindowAttributes* i; +-int j; ++void ++set_XSetWindowAttributes_background_pixmap (XSetWindowAttributes *i, int j) + { + i->background_pixmap = j; + } +@@ -1213,305 +1140,283 @@ int j; + + /********* XWindowAttributes functions *****/ + +-long make_XWindowAttributes (){ ++long ++make_XWindowAttributes (void){ + return ((long) calloc(1, sizeof(XWindowAttributes))); + } + +-long XWindowAttributes_screen(i) +-XWindowAttributes* i; ++long ++XWindowAttributes_screen (XWindowAttributes *i) + { + return((long) i->screen); + } + +-void set_XWindowAttributes_screen(i, j) +-XWindowAttributes* i; +-long j; ++void ++set_XWindowAttributes_screen (XWindowAttributes *i, long j) + { + i->screen = (Screen *) j; + } + +-int XWindowAttributes_override_redirect(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_override_redirect (XWindowAttributes *i) + { + return(i->override_redirect); + } + +-void set_XWindowAttributes_override_redirect(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_override_redirect (XWindowAttributes *i, int j) + { + i->override_redirect = j; + } + +-int XWindowAttributes_do_not_propagate_mask(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_do_not_propagate_mask (XWindowAttributes *i) + { + return(i->do_not_propagate_mask); + } + +-void set_XWindowAttributes_do_not_propagate_mask(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_do_not_propagate_mask (XWindowAttributes *i, int j) + { + i->do_not_propagate_mask = j; + } + +-int XWindowAttributes_your_event_mask(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_your_event_mask (XWindowAttributes *i) + { + return(i->your_event_mask); + } + +-void set_XWindowAttributes_your_event_mask(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_your_event_mask (XWindowAttributes *i, int j) + { + i->your_event_mask = j; + } + +-int XWindowAttributes_all_event_masks(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_all_event_masks (XWindowAttributes *i) + { + return(i->all_event_masks); + } + +-void set_XWindowAttributes_all_event_masks(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_all_event_masks (XWindowAttributes *i, int j) + { + i->all_event_masks = j; + } + +-int XWindowAttributes_map_state(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_map_state (XWindowAttributes *i) + { + return(i->map_state); + } + +-void set_XWindowAttributes_map_state(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_map_state (XWindowAttributes *i, int j) + { + i->map_state = j; + } + +-int XWindowAttributes_map_installed(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_map_installed (XWindowAttributes *i) + { + return(i->map_installed); + } + +-void set_XWindowAttributes_map_installed(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_map_installed (XWindowAttributes *i, int j) + { + i->map_installed = j; + } + +-int XWindowAttributes_colormap(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_colormap (XWindowAttributes *i) + { + return(i->colormap); + } + +-void set_XWindowAttributes_colormap(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_colormap (XWindowAttributes *i, int j) + { + i->colormap = j; + } + +-int XWindowAttributes_save_under(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_save_under (XWindowAttributes *i) + { + return(i->save_under); + } + +-void set_XWindowAttributes_save_under(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_save_under (XWindowAttributes *i, int j) + { + i->save_under = j; + } + +-int XWindowAttributes_backing_pixel(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_backing_pixel (XWindowAttributes *i) + { + return(i->backing_pixel); + } + +-void set_XWindowAttributes_backing_pixel(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_backing_pixel (XWindowAttributes *i, int j) + { + i->backing_pixel = j; + } + +-int XWindowAttributes_backing_planes(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_backing_planes (XWindowAttributes *i) + { + return(i->backing_planes); + } + +-void set_XWindowAttributes_backing_planes(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_backing_planes (XWindowAttributes *i, int j) + { + i->backing_planes = j; + } + +-int XWindowAttributes_backing_store(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_backing_store (XWindowAttributes *i) + { + return(i->backing_store); + } + +-void set_XWindowAttributes_backing_store(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_backing_store (XWindowAttributes *i, int j) + { + i->backing_store = j; + } + +-int XWindowAttributes_win_gravity(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_win_gravity (XWindowAttributes *i) + { + return(i->win_gravity); + } + +-void set_XWindowAttributes_win_gravity(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_win_gravity (XWindowAttributes *i, int j) + { + i->win_gravity = j; + } + +-int XWindowAttributes_bit_gravity(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_bit_gravity (XWindowAttributes *i) + { + return(i->bit_gravity); + } + +-void set_XWindowAttributes_bit_gravity(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_bit_gravity (XWindowAttributes *i, int j) + { + i->bit_gravity = j; + } + +-int XWindowAttributes_class(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_class (XWindowAttributes *i) + { + return(i->class); + } + +-void set_XWindowAttributes_class(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_class (XWindowAttributes *i, int j) + { + i->class = j; + } + +-int XWindowAttributes_root(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_root (XWindowAttributes *i) + { + return(i->root); + } + +-void set_XWindowAttributes_root(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_root (XWindowAttributes *i, int j) + { + i->root = j; + } + +-long XWindowAttributes_visual(i) +-XWindowAttributes* i; ++long ++XWindowAttributes_visual (XWindowAttributes *i) + { + return((long) i->visual); + } + +-void set_XWindowAttributes_visual(i, j) +-XWindowAttributes* i; +-long j; ++void ++set_XWindowAttributes_visual (XWindowAttributes *i, long j) + { + i->visual = (Visual *) j; + } + +-int XWindowAttributes_depth(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_depth (XWindowAttributes *i) + { + return(i->depth); + } + +-void set_XWindowAttributes_depth(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_depth (XWindowAttributes *i, int j) + { + i->depth = j; + } + +-int XWindowAttributes_border_width(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_border_width (XWindowAttributes *i) + { + return(i->border_width); + } + +-void set_XWindowAttributes_border_width(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_border_width (XWindowAttributes *i, int j) + { + i->border_width = j; + } + +-int XWindowAttributes_height(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_height (XWindowAttributes *i) + { + return(i->height); + } + +-void set_XWindowAttributes_height(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_height (XWindowAttributes *i, int j) + { + i->height = j; + } + +-int XWindowAttributes_width(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_width (XWindowAttributes *i) + { + return(i->width); + } + +-void set_XWindowAttributes_width(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_width (XWindowAttributes *i, int j) + { + i->width = j; + } + +-int XWindowAttributes_y(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_y (XWindowAttributes *i) + { + return(i->y); + } + +-void set_XWindowAttributes_y(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_y (XWindowAttributes *i, int j) + { + i->y = j; + } + +-int XWindowAttributes_x(i) +-XWindowAttributes* i; ++int ++XWindowAttributes_x (XWindowAttributes *i) + { + return(i->x); + } + +-void set_XWindowAttributes_x(i, j) +-XWindowAttributes* i; +-int j; ++void ++set_XWindowAttributes_x (XWindowAttributes *i, int j) + { + i->x = j; + } +@@ -1519,45 +1424,43 @@ int j; + + /********* XHostAddress functions *****/ + +-long make_XHostAddress (){ ++long ++make_XHostAddress (void){ + return ((long) calloc(1, sizeof(XHostAddress))); + } + +-long XHostAddress_address(i) +-XHostAddress* i; ++long ++XHostAddress_address (XHostAddress *i) + { + return((long) i->address); + } + +-void set_XHostAddress_address(i, j) +-XHostAddress* i; +-long j; ++void ++set_XHostAddress_address (XHostAddress *i, long j) + { + i->address = (char *) j; + } + +-int XHostAddress_length(i) +-XHostAddress* i; ++int ++XHostAddress_length (XHostAddress *i) + { + return(i->length); + } + +-void set_XHostAddress_length(i, j) +-XHostAddress* i; +-int j; ++void ++set_XHostAddress_length (XHostAddress *i, int j) + { + i->length = j; + } + +-int XHostAddress_family(i) +-XHostAddress* i; ++int ++XHostAddress_family (XHostAddress *i) + { + return(i->family); + } + +-void set_XHostAddress_family(i, j) +-XHostAddress* i; +-int j; ++void ++set_XHostAddress_family (XHostAddress *i, int j) + { + i->family = j; + } +@@ -1565,214 +1468,199 @@ int j; + + /********* XImage functions *****/ + +-long make_XImage (){ ++long ++make_XImage (void){ + return ((long) calloc(1, sizeof(XImage))); + } + +-long XImage_obdata(i) +-XImage* i; ++long ++XImage_obdata (XImage *i) + { + return((long) i->obdata); + } + +-void set_XImage_obdata(i, j) +-XImage* i; +-long j; ++void ++set_XImage_obdata (XImage *i, long j) + { + i->obdata = (XPointer) j; + } + +-int XImage_blue_mask(i) +-XImage* i; ++int ++XImage_blue_mask (XImage *i) + { + return(i->blue_mask); + } + +-void set_XImage_blue_mask(i, j) +-XImage* i; +-int j; ++void ++set_XImage_blue_mask (XImage *i, int j) + { + i->blue_mask = j; + } + +-int XImage_green_mask(i) +-XImage* i; ++int ++XImage_green_mask (XImage *i) + { + return(i->green_mask); + } + +-void set_XImage_green_mask(i, j) +-XImage* i; +-int j; ++void ++set_XImage_green_mask (XImage *i, int j) + { + i->green_mask = j; + } + +-int XImage_red_mask(i) +-XImage* i; ++int ++XImage_red_mask (XImage *i) + { + return(i->red_mask); + } + +-void set_XImage_red_mask(i, j) +-XImage* i; +-int j; ++void ++set_XImage_red_mask (XImage *i, int j) + { + i->red_mask = j; + } + +-int XImage_bits_per_pixel(i) +-XImage* i; ++int ++XImage_bits_per_pixel (XImage *i) + { + return(i->bits_per_pixel); + } + +-void set_XImage_bits_per_pixel(i, j) +-XImage* i; +-int j; ++void ++set_XImage_bits_per_pixel (XImage *i, int j) + { + i->bits_per_pixel = j; + } + +-int XImage_bytes_per_line(i) +-XImage* i; ++int ++XImage_bytes_per_line (XImage *i) + { + return(i->bytes_per_line); + } + +-void set_XImage_bytes_per_line(i, j) +-XImage* i; +-int j; ++void ++set_XImage_bytes_per_line (XImage *i, int j) + { + i->bytes_per_line = j; + } + +-int XImage_depth(i) +-XImage* i; ++int ++XImage_depth (XImage *i) + { + return(i->depth); + } + +-void set_XImage_depth(i, j) +-XImage* i; +-int j; ++void ++set_XImage_depth (XImage *i, int j) + { + i->depth = j; + } + +-int XImage_bitmap_pad(i) +-XImage* i; ++int ++XImage_bitmap_pad (XImage *i) + { + return(i->bitmap_pad); + } + +-void set_XImage_bitmap_pad(i, j) +-XImage* i; +-int j; ++void ++set_XImage_bitmap_pad (XImage *i, int j) + { + i->bitmap_pad = j; + } + +-int XImage_bitmap_bit_order(i) +-XImage* i; ++int ++XImage_bitmap_bit_order (XImage *i) + { + return(i->bitmap_bit_order); + } + +-void set_XImage_bitmap_bit_order(i, j) +-XImage* i; +-int j; ++void ++set_XImage_bitmap_bit_order (XImage *i, int j) + { + i->bitmap_bit_order = j; + } + +-int XImage_bitmap_unit(i) +-XImage* i; ++int ++XImage_bitmap_unit (XImage *i) + { + return(i->bitmap_unit); + } + +-void set_XImage_bitmap_unit(i, j) +-XImage* i; +-int j; ++void ++set_XImage_bitmap_unit (XImage *i, int j) + { + i->bitmap_unit = j; + } + +-int XImage_byte_order(i) +-XImage* i; ++int ++XImage_byte_order (XImage *i) + { + return(i->byte_order); + } + +-void set_XImage_byte_order(i, j) +-XImage* i; +-int j; ++void ++set_XImage_byte_order (XImage *i, int j) + { + i->byte_order = j; + } + +-long XImage_data(i) +-XImage* i; ++long ++XImage_data (XImage *i) + { + return((long) i->data); + } + +-void set_XImage_data(i, j) +-XImage* i; +-long j; ++void ++set_XImage_data (XImage *i, long j) + { + i->data = (char *) j; + } + +-int XImage_format(i) +-XImage* i; ++int ++XImage_format (XImage *i) + { + return(i->format); + } + +-void set_XImage_format(i, j) +-XImage* i; +-int j; ++void ++set_XImage_format (XImage *i, int j) + { + i->format = j; + } + +-int XImage_xoffset(i) +-XImage* i; ++int ++XImage_xoffset (XImage *i) + { + return(i->xoffset); + } + +-void set_XImage_xoffset(i, j) +-XImage* i; +-int j; ++void ++set_XImage_xoffset (XImage *i, int j) + { + i->xoffset = j; + } + +-int XImage_height(i) +-XImage* i; ++int ++XImage_height (XImage *i) + { + return(i->height); + } + +-void set_XImage_height(i, j) +-XImage* i; +-int j; ++void ++set_XImage_height (XImage *i, int j) + { + i->height = j; + } + +-int XImage_width(i) +-XImage* i; ++int ++XImage_width (XImage *i) + { + return(i->width); + } + +-void set_XImage_width(i, j) +-XImage* i; +-int j; ++void ++set_XImage_width (XImage *i, int j) + { + i->width = j; + } +@@ -1780,97 +1668,91 @@ int j; + + /********* XWindowChanges functions *****/ + +-long make_XWindowChanges (){ ++long ++make_XWindowChanges (void){ + return ((long) calloc(1, sizeof(XWindowChanges))); + } + +-int XWindowChanges_stack_mode(i) +-XWindowChanges* i; ++int ++XWindowChanges_stack_mode (XWindowChanges *i) + { + return(i->stack_mode); + } + +-void set_XWindowChanges_stack_mode(i, j) +-XWindowChanges* i; +-int j; ++void ++set_XWindowChanges_stack_mode (XWindowChanges *i, int j) + { + i->stack_mode = j; + } + +-int XWindowChanges_sibling(i) +-XWindowChanges* i; ++int ++XWindowChanges_sibling (XWindowChanges *i) + { + return(i->sibling); + } + +-void set_XWindowChanges_sibling(i, j) +-XWindowChanges* i; +-int j; ++void ++set_XWindowChanges_sibling (XWindowChanges *i, int j) + { + i->sibling = j; + } + +-int XWindowChanges_border_width(i) +-XWindowChanges* i; ++int ++XWindowChanges_border_width (XWindowChanges *i) + { + return(i->border_width); + } + +-void set_XWindowChanges_border_width(i, j) +-XWindowChanges* i; +-int j; ++void ++set_XWindowChanges_border_width (XWindowChanges *i, int j) + { + i->border_width = j; + } + +-int XWindowChanges_height(i) +-XWindowChanges* i; ++int ++XWindowChanges_height (XWindowChanges *i) + { + return(i->height); + } + +-void set_XWindowChanges_height(i, j) +-XWindowChanges* i; +-int j; ++void ++set_XWindowChanges_height (XWindowChanges *i, int j) + { + i->height = j; + } + +-int XWindowChanges_width(i) +-XWindowChanges* i; ++int ++XWindowChanges_width (XWindowChanges *i) + { + return(i->width); + } + +-void set_XWindowChanges_width(i, j) +-XWindowChanges* i; +-int j; ++void ++set_XWindowChanges_width (XWindowChanges *i, int j) + { + i->width = j; + } + +-int XWindowChanges_y(i) +-XWindowChanges* i; ++int ++XWindowChanges_y (XWindowChanges *i) + { + return(i->y); + } + +-void set_XWindowChanges_y(i, j) +-XWindowChanges* i; +-int j; ++void ++set_XWindowChanges_y (XWindowChanges *i, int j) + { + i->y = j; + } + +-int XWindowChanges_x(i) +-XWindowChanges* i; ++int ++XWindowChanges_x (XWindowChanges *i) + { + return(i->x); + } + +-void set_XWindowChanges_x(i, j) +-XWindowChanges* i; +-int j; ++void ++set_XWindowChanges_x (XWindowChanges *i, int j) + { + i->x = j; + } +@@ -1878,84 +1760,79 @@ int j; + + /********* XColor functions *****/ + +-long make_XColor (){ ++long ++make_XColor (void){ + return ((long) calloc(1, sizeof(XColor))); + } + +-char XColor_pad(i) +-XColor* i; ++char ++XColor_pad (XColor *i) + { + return(i->pad); + } + +-void set_XColor_pad(i, j) +-XColor* i; +-char j; ++void ++set_XColor_pad (XColor *i, int j) + { + i->pad = j; + } + +-char XColor_flags(i) +-XColor* i; ++char ++XColor_flags (XColor *i) + { + return(i->flags); + } + +-void set_XColor_flags(i, j) +-XColor* i; +-char j; ++void ++set_XColor_flags (XColor *i, int j) + { + i->flags = j; + } + +-int XColor_blue(i) +-XColor* i; ++int ++XColor_blue (XColor *i) + { + return(i->blue); + } + +-void set_XColor_blue(i, j) +-XColor* i; +-int j; ++void ++set_XColor_blue (XColor *i, int j) + { + i->blue = j; + } + +-int XColor_green(i) +-XColor* i; ++int ++XColor_green (XColor *i) + { + return(i->green); + } + +-void set_XColor_green(i, j) +-XColor* i; +-int j; ++void ++set_XColor_green (XColor *i, int j) + { + i->green = j; + } + +-int XColor_red(i) +-XColor* i; ++int ++XColor_red (XColor *i) + { + return(i->red); + } + +-void set_XColor_red(i, j) +-XColor* i; +-int j; ++void ++set_XColor_red (XColor *i, int j) + { + i->red = j; + } + +-int XColor_pixel(i) +-XColor* i; ++int ++XColor_pixel (XColor *i) + { + return(i->pixel); + } + +-void set_XColor_pixel(i, j) +-XColor* i; +-int j; ++void ++set_XColor_pixel (XColor *i, int j) + { + i->pixel = j; + } +@@ -1963,58 +1840,55 @@ int j; + + /********* XSegment functions *****/ + +-long make_XSegment (){ ++long ++make_XSegment (void){ + return ((long) calloc(1, sizeof(XSegment))); + } + +-int XSegment_y2(i) +-XSegment* i; ++int ++XSegment_y2 (XSegment *i) + { + return(i->y2); + } + +-void set_XSegment_y2(i, j) +-XSegment* i; +-int j; ++void ++set_XSegment_y2 (XSegment *i, int j) + { + i->y2 = j; + } + +-int XSegment_x2(i) +-XSegment* i; ++int ++XSegment_x2 (XSegment *i) + { + return(i->x2); + } + +-void set_XSegment_x2(i, j) +-XSegment* i; +-int j; ++void ++set_XSegment_x2 (XSegment *i, int j) + { + i->x2 = j; + } + +-int XSegment_y1(i) +-XSegment* i; ++int ++XSegment_y1 (XSegment *i) + { + return(i->y1); + } + +-void set_XSegment_y1(i, j) +-XSegment* i; +-int j; ++void ++set_XSegment_y1 (XSegment *i, int j) + { + i->y1 = j; + } + +-int XSegment_x1(i) +-XSegment* i; ++int ++XSegment_x1 (XSegment *i) + { + return(i->x1); + } + +-void set_XSegment_x1(i, j) +-XSegment* i; +-int j; ++void ++set_XSegment_x1 (XSegment *i, int j) + { + i->x1 = j; + } +@@ -2022,32 +1896,31 @@ int j; + + /********* XPoint functions *****/ + +-long make_XPoint (){ ++long ++make_XPoint (void){ + return ((long) calloc(1, sizeof(XPoint))); + } + +-int XPoint_y(i) +-XPoint* i; ++int ++XPoint_y (XPoint *i) + { + return(i->y); + } + +-void set_XPoint_y(i, j) +-XPoint* i; +-int j; ++void ++set_XPoint_y (XPoint *i, int j) + { + i->y = j; + } + +-int XPoint_x(i) +-XPoint* i; ++int ++XPoint_x (XPoint *i) + { + return(i->x); + } + +-void set_XPoint_x(i, j) +-XPoint* i; +-int j; ++void ++set_XPoint_x (XPoint *i, int j) + { + i->x = j; + } +@@ -2055,58 +1928,55 @@ int j; + + /********* XRectangle functions *****/ + +-long make_XRectangle (){ ++long ++make_XRectangle (void){ + return ((long) calloc(1, sizeof(XRectangle))); + } + +-int XRectangle_height(i) +-XRectangle* i; ++int ++XRectangle_height (XRectangle *i) + { + return(i->height); + } + +-void set_XRectangle_height(i, j) +-XRectangle* i; +-int j; ++void ++set_XRectangle_height (XRectangle *i, int j) + { + i->height = j; + } + +-int XRectangle_width(i) +-XRectangle* i; ++int ++XRectangle_width (XRectangle *i) + { + return(i->width); + } + +-void set_XRectangle_width(i, j) +-XRectangle* i; +-int j; ++void ++set_XRectangle_width (XRectangle *i, int j) + { + i->width = j; + } + +-int XRectangle_y(i) +-XRectangle* i; ++int ++XRectangle_y (XRectangle *i) + { + return(i->y); + } + +-void set_XRectangle_y(i, j) +-XRectangle* i; +-int j; ++void ++set_XRectangle_y (XRectangle *i, int j) + { + i->y = j; + } + +-int XRectangle_x(i) +-XRectangle* i; ++int ++XRectangle_x (XRectangle *i) + { + return(i->x); + } + +-void set_XRectangle_x(i, j) +-XRectangle* i; +-int j; ++void ++set_XRectangle_x (XRectangle *i, int j) + { + i->x = j; + } +@@ -2114,84 +1984,79 @@ int j; + + /********* XArc functions *****/ + +-long make_XArc (){ ++long ++make_XArc (void){ + return ((long) calloc(1, sizeof(XArc))); + } + +-int XArc_angle2(i) +-XArc* i; ++int ++XArc_angle2 (XArc *i) + { + return(i->angle2); + } + +-void set_XArc_angle2(i, j) +-XArc* i; +-int j; ++void ++set_XArc_angle2 (XArc *i, int j) + { + i->angle2 = j; + } + +-int XArc_angle1(i) +-XArc* i; ++int ++XArc_angle1 (XArc *i) + { + return(i->angle1); + } + +-void set_XArc_angle1(i, j) +-XArc* i; +-int j; ++void ++set_XArc_angle1 (XArc *i, int j) + { + i->angle1 = j; + } + +-int XArc_height(i) +-XArc* i; ++int ++XArc_height (XArc *i) + { + return(i->height); + } + +-void set_XArc_height(i, j) +-XArc* i; +-int j; ++void ++set_XArc_height (XArc *i, int j) + { + i->height = j; + } + +-int XArc_width(i) +-XArc* i; ++int ++XArc_width (XArc *i) + { + return(i->width); + } + +-void set_XArc_width(i, j) +-XArc* i; +-int j; ++void ++set_XArc_width (XArc *i, int j) + { + i->width = j; + } + +-int XArc_y(i) +-XArc* i; ++int ++XArc_y (XArc *i) + { + return(i->y); + } + +-void set_XArc_y(i, j) +-XArc* i; +-int j; ++void ++set_XArc_y (XArc *i, int j) + { + i->y = j; + } + +-int XArc_x(i) +-XArc* i; ++int ++XArc_x (XArc *i) + { + return(i->x); + } + +-void set_XArc_x(i, j) +-XArc* i; +-int j; ++void ++set_XArc_x (XArc *i, int j) + { + i->x = j; + } +@@ -2199,110 +2064,103 @@ int j; + + /********* XKeyboardControl functions *****/ + +-long make_XKeyboardControl (){ ++long ++make_XKeyboardControl (void){ + return ((long) calloc(1, sizeof(XKeyboardControl))); + } + +-int XKeyboardControl_auto_repeat_mode(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_auto_repeat_mode (XKeyboardControl *i) + { + return(i->auto_repeat_mode); + } + +-void set_XKeyboardControl_auto_repeat_mode(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_auto_repeat_mode (XKeyboardControl *i, int j) + { + i->auto_repeat_mode = j; + } + +-int XKeyboardControl_key(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_key (XKeyboardControl *i) + { + return(i->key); + } + +-void set_XKeyboardControl_key(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_key (XKeyboardControl *i, int j) + { + i->key = j; + } + +-int XKeyboardControl_led_mode(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_led_mode (XKeyboardControl *i) + { + return(i->led_mode); + } + +-void set_XKeyboardControl_led_mode(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_led_mode (XKeyboardControl *i, int j) + { + i->led_mode = j; + } + +-int XKeyboardControl_led(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_led (XKeyboardControl *i) + { + return(i->led); + } + +-void set_XKeyboardControl_led(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_led (XKeyboardControl *i, int j) + { + i->led = j; + } + +-int XKeyboardControl_bell_duration(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_bell_duration (XKeyboardControl *i) + { + return(i->bell_duration); + } + +-void set_XKeyboardControl_bell_duration(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_bell_duration (XKeyboardControl *i, int j) + { + i->bell_duration = j; + } + +-int XKeyboardControl_bell_pitch(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_bell_pitch (XKeyboardControl *i) + { + return(i->bell_pitch); + } + +-void set_XKeyboardControl_bell_pitch(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_bell_pitch (XKeyboardControl *i, int j) + { + i->bell_pitch = j; + } + +-int XKeyboardControl_bell_percent(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_bell_percent (XKeyboardControl *i) + { + return(i->bell_percent); + } + +-void set_XKeyboardControl_bell_percent(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_bell_percent (XKeyboardControl *i, int j) + { + i->bell_percent = j; + } + +-int XKeyboardControl_key_click_percent(i) +-XKeyboardControl* i; ++int ++XKeyboardControl_key_click_percent (XKeyboardControl *i) + { + return(i->key_click_percent); + } + +-void set_XKeyboardControl_key_click_percent(i, j) +-XKeyboardControl* i; +-int j; ++void ++set_XKeyboardControl_key_click_percent (XKeyboardControl *i, int j) + { + i->key_click_percent = j; + } +@@ -2310,97 +2168,91 @@ int j; + + /********* XKeyboardState functions *****/ + +-long make_XKeyboardState (){ ++long ++make_XKeyboardState (void){ + return ((long) calloc(1, sizeof(XKeyboardState))); + } + +-char *XKeyboardState_auto_repeats(i) +-XKeyboardState* i; ++char * ++XKeyboardState_auto_repeats (XKeyboardState *i) + { + return(i->auto_repeats); + } + +-void set_XKeyboardState_auto_repeats(i, j) +-XKeyboardState* i; +-char *j; ++void ++set_XKeyboardState_auto_repeats (XKeyboardState *i, char *j) + { + strcpy(i->auto_repeats, j); + } + +-int XKeyboardState_global_auto_repeat(i) +-XKeyboardState* i; ++int ++XKeyboardState_global_auto_repeat (XKeyboardState *i) + { + return(i->global_auto_repeat); + } + +-void set_XKeyboardState_global_auto_repeat(i, j) +-XKeyboardState* i; +-int j; ++void ++set_XKeyboardState_global_auto_repeat (XKeyboardState *i, int j) + { + i->global_auto_repeat = j; + } + +-int XKeyboardState_led_mask(i) +-XKeyboardState* i; ++int ++XKeyboardState_led_mask (XKeyboardState *i) + { + return(i->led_mask); + } + +-void set_XKeyboardState_led_mask(i, j) +-XKeyboardState* i; +-int j; ++void ++set_XKeyboardState_led_mask (XKeyboardState *i, int j) + { + i->led_mask = j; + } + +-int XKeyboardState_bell_duration(i) +-XKeyboardState* i; ++int ++XKeyboardState_bell_duration (XKeyboardState *i) + { + return(i->bell_duration); + } + +-void set_XKeyboardState_bell_duration(i, j) +-XKeyboardState* i; +-int j; ++void ++set_XKeyboardState_bell_duration (XKeyboardState *i, int j) + { + i->bell_duration = j; + } + +-int XKeyboardState_bell_pitch(i) +-XKeyboardState* i; ++int ++XKeyboardState_bell_pitch (XKeyboardState *i) + { + return(i->bell_pitch); + } + +-void set_XKeyboardState_bell_pitch(i, j) +-XKeyboardState* i; +-int j; ++void ++set_XKeyboardState_bell_pitch (XKeyboardState *i, int j) + { + i->bell_pitch = j; + } + +-int XKeyboardState_bell_percent(i) +-XKeyboardState* i; ++int ++XKeyboardState_bell_percent (XKeyboardState *i) + { + return(i->bell_percent); + } + +-void set_XKeyboardState_bell_percent(i, j) +-XKeyboardState* i; +-int j; ++void ++set_XKeyboardState_bell_percent (XKeyboardState *i, int j) + { + i->bell_percent = j; + } + +-int XKeyboardState_key_click_percent(i) +-XKeyboardState* i; ++int ++XKeyboardState_key_click_percent (XKeyboardState *i) + { + return(i->key_click_percent); + } + +-void set_XKeyboardState_key_click_percent(i, j) +-XKeyboardState* i; +-int j; ++void ++set_XKeyboardState_key_click_percent (XKeyboardState *i, int j) + { + i->key_click_percent = j; + } +@@ -2408,45 +2260,43 @@ int j; + + /********* XTimeCoord functions *****/ + +-long make_XTimeCoord (){ ++long ++make_XTimeCoord (void){ + return ((long) calloc(1, sizeof(XTimeCoord))); + } + +-int XTimeCoord_y(i) +-XTimeCoord* i; ++int ++XTimeCoord_y (XTimeCoord *i) + { + return(i->y); + } + +-void set_XTimeCoord_y(i, j) +-XTimeCoord* i; +-int j; ++void ++set_XTimeCoord_y (XTimeCoord *i, int j) + { + i->y = j; + } + +-int XTimeCoord_x(i) +-XTimeCoord* i; ++int ++XTimeCoord_x (XTimeCoord *i) + { + return(i->x); + } + +-void set_XTimeCoord_x(i, j) +-XTimeCoord* i; +-int j; ++void ++set_XTimeCoord_x (XTimeCoord *i, int j) + { + i->x = j; + } + +-int XTimeCoord_time(i) +-XTimeCoord* i; ++int ++XTimeCoord_time (XTimeCoord *i) + { + return(i->time); + } + +-void set_XTimeCoord_time(i, j) +-XTimeCoord* i; +-int j; ++void ++set_XTimeCoord_time (XTimeCoord *i, int j) + { + i->time = j; + } +@@ -2454,32 +2304,31 @@ int j; + + /********* XModifierKeymap functions *****/ + +-long make_XModifierKeymap (){ ++long ++make_XModifierKeymap (void){ + return ((long) calloc(1, sizeof(XModifierKeymap))); + } + +-long XModifierKeymap_modifiermap(i) +-XModifierKeymap* i; ++long ++XModifierKeymap_modifiermap (XModifierKeymap *i) + { + return((long) i->modifiermap); + } + +-void set_XModifierKeymap_modifiermap(i, j) +-XModifierKeymap* i; +-long j; ++void ++set_XModifierKeymap_modifiermap (XModifierKeymap *i, long j) + { + i->modifiermap = (KeyCode *) j; + } + +-int XModifierKeymap_max_keypermod(i) +-XModifierKeymap* i; ++int ++XModifierKeymap_max_keypermod (XModifierKeymap *i) + { + return(i->max_keypermod); + } + +-void set_XModifierKeymap_max_keypermod(i, j) +-XModifierKeymap* i; +-int j; ++void ++set_XModifierKeymap_max_keypermod (XModifierKeymap *i, int j) + { + i->max_keypermod = j; + } +--- gcl27-2.7.1.orig/xgcl-2/Xutil-2.c ++++ gcl27-2.7.1/xgcl-2/Xutil-2.c +@@ -25,31 +25,38 @@ + #include + #include + +-int IsKeypadKey(keysym) int keysym; { ++int IsKeypadKey (int keysym) { + return (((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal));} + +-int IsCursorKey(keysym) int keysym; { ++int ++IsCursorKey (int keysym) ++{ + return (((unsigned)(keysym) >= XK_Home) && ((unsigned)(keysym) < XK_Select));} + +-int IsPFKey(keysym) int keysym; { ++int ++IsPFKey (int keysym) { + return (((unsigned)(keysym) >= XK_KP_F1) && ((unsigned)(keysym) <= XK_KP_F4));} + +-int IsFunctionKey(keysym) int keysym; { ++int ++IsFunctionKey (int keysym) { + return (((unsigned)(keysym) >= XK_F1) && ((unsigned)(keysym) <= XK_F35));} + +-int IsMiscFunctionKey(keysym) int keysym; { ++int ++IsMiscFunctionKey (int keysym) { + return (((unsigned)(keysym) >= XK_Select) && ((unsigned)(keysym) < XK_KP_Space));} + +-int IsModifierKey(keysym) int keysym; { ++int ++IsModifierKey (int keysym) { + return (((unsigned)(keysym) >= XK_Shift_L) && ((unsigned)(keysym) <= XK_Hyper_R));} + +-int XUniqueContext() ++int ++XUniqueContext (void) + { + return( ((int)XrmUniqueQuark()) ); + } + +-int XStringToContext(string) +- char *string; ++int ++XStringToContext (char *string) + { + return( (int)XrmStringToQuark(string) ); + } diff --git a/debian/patches/Version_2_7_2pre9 b/debian/patches/Version_2_7_2pre9 new file mode 100644 index 00000000..77849165 --- /dev/null +++ b/debian/patches/Version_2_7_2pre9 @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Camm Maguire +Date: Feb, 19 2026 22:24:25 +0000 +Subject: [PATCH] + +TODO: Put a short summary on the line above and replace this paragraph +with a longer explanation of this change. Complete the meta-information +with other relevant fields (see below for details). To make it easier, the +information below has been extracted from the changelog. Adjust it or drop +it. + +--- +The information above should follow the Patch Tagging Guidelines, please +checkout https://dep.debian.net/deps/dep3/ to learn about the format. Here +are templates for supplementary fields that you might want to add: + +Origin: (upstream|backport|vendor|other), (|commit:) +Bug: +Bug-: +Forwarded: (no|not-needed|) +Applied-Upstream: , (|commit:) +Reviewed-By: + +--- gcl27-2.7.1.orig/Makefile.am ++++ gcl27-2.7.1/Makefile.am +@@ -459,6 +459,7 @@ h/cmpincludea.h: $(filter-out gclincl.h, + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + + o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk ++ chmod +x bin/c23.awk + $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@ + + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h +--- gcl27-2.7.1.orig/Makefile.in ++++ gcl27-2.7.1/Makefile.in +@@ -4907,6 +4907,7 @@ h/cmpincludea.h: $(filter-out gclincl.h, + $(AWK) '/^# |^$$|^#pragma/ {next}{print}' > $@ + + o/qfv.c: o/pre_qfv.c h/new_decl.h bin/c23.awk ++ chmod +x bin/c23.awk + $(CPP) $(AM_CPPFLAGS) -P $(CPPFLAGS) $< | bin/c23.awk >$@ + + h/cmpinclude.h: h/mcompdefs.h h/cmpincludea.h h/cmponly_last.h +--- gcl27-2.7.1.orig/git.tag ++++ gcl27-2.7.1/git.tag +@@ -1,2 +1,2 @@ +-"Version_2_7_2pre8" ++"Version_2_7_2pre9" + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..1d135606 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,34 @@ +Version_2_7_2pre1 +Version_2_7_2pre2 +Version_2_7_2ore3 +Version_2_7_2pre5 +Version_2_7_2pre6 +Version_2_7_2pre7 +Version_2_7_2pre8 +Version_2_7_2pre9 +Version_2_7_2pre10 +Version_2_7_2pre11 +Version_2_7_2pre12 +Version_2_7_2pre13 +Version_2_7_2pre14 +Version_2_7_2pre15 +Version_2_7_2pre16 +Version_2_7_2pre17 +Version_2_7_2pre18 +Version_2_7_2pre19 +Version_2_7_2pre20 +Version_2_7_2pre21 +Version_2_7_2pre22 +Version_2_7_2pre23 +Version_2_7_2pre24 +Version_2_7_2pre25 +Version_2_7_2pre26 +Version_2_7_2pre27 +Version_2_7_2pre28 +Version_2_7_2pre30 +Version_2_7_2pre31 +Version_2_7_2pre32 +Version_2_7_2pre33 +Version_2_7_2pre34 +Version_2_7_2pre35 +Version_2_7_2pre36 diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in new file mode 100644 index 00000000..cc632a9f --- /dev/null +++ b/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] gcl27.templates diff --git a/debian/po/ca.po b/debian/po/ca.po new file mode 100644 index 00000000..7c78e1a7 --- /dev/null +++ b/debian/po/ca.po @@ -0,0 +1,77 @@ +# Catalan translation of gcl27's debconf messages +# Copyright © 2025 poc senderi +# This file is distributed under the same license as the gcl27 package. +# poc senderi , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl27\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-05-03 13:26+0000\n" +"PO-Revision-Date: 2025-10-19 12:10+0200\n" +"Last-Translator: poc senderi \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.2\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "" +"Voleu usar de manera predeterminada la versió, que encara s'hi està " +"treballant, ANSI?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" +"El GCL es troba en procés d'oferir una imatge conforme a ANSI a més a més de " +"la imatge tradicional CLtL1 que encara es troba en producció. Mireu el " +"fitxer README.Debian per una breu descripció sobre aquests termes. Establir " +"aquesta variable determinarà quina imatge s'usarà per defecte quan s'executi " +"«gcl27». Podeu canviar localment aquesta decisió establint la variable " +"d'entorn GCL_ANSI a qualsevol cosa tret de «no» per a la versió ANSI, i a " +"«no» per a la versió CLtL1, per exemple «GCL_ANSI=t gcl27». La versió activa " +"es mostrarà al bàner inicial durant l'engegada." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Voleu usar per defecte la versió de perfilació?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" +"El GCL ara disposa de compatibilitat opcional per a la perfilació usant el " +"«gprof». Per als detalls, vegeu la documentació de «si::gprof-start» i «si::" +"gprof-quit». Atès que aquesta versió és més lenta que d'altres sense " +"compatibilitat amb el «gprof», no es recomana per a l'ús en producció. Podeu " +"canviar localment la decisió predeterminada feta aquí establint la variable " +"d'entorn GCL_PROF a qualsevol cosa tret d'una cadena buida per a la " +"compatibilitat amb perfilació, i a una cadena buida per a les versions més " +"optimitzades, per exemple «GCL_PROF=t gcl27». Si la perfilació està " +"activada, això es mostrarà al bàner inicial durant l'engegada." diff --git a/debian/po/cs.po b/debian/po/cs.po new file mode 100644 index 00000000..15a9685b --- /dev/null +++ b/debian/po/cs.po @@ -0,0 +1,149 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2007-12-24 13:21+0100\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Používat implicitně ANSI verzi (stále ve vývoji)?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Používat implicitně profilování?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL se nachází ve fázi, kdy kromě tradičního obrazu CLtL1 (který se stále " +#~ "používá) poskytuje i obraz kompatibilní s ANSI." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Pro stručný popis těchto termínů si prosím přečtěte soubor README.Debian. " +#~ "Touto odpovědí určujete, který obraz se spustí po zadání „gcl@EXT@“. " + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Toto nastavení můžete přebít nastavením proměnné prostředí GCL_ANSI na " +#~ "neprázdný řetězec (použije ANSI verzi) nebo na prázdnou hodnotu (použije " +#~ "CLtL1 verzi). Například GCL_ANSI=t gcl@EXT@. Aktuálně použitá verze se " +#~ "zobrazí na úvodní obrazovce." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL nyní podporuje profilování přes gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Podrobnosti naleznete v dokumentaci si::gprof-start a si::gprof-quit. " +#~ "Tato verze je pomalejší než verze bez podpory gprof, tudíž ji " +#~ "nedoporučujeme pro koncové produkční nasazení." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Toto nastavení můžete přebít nastavením proměnné prostředí GCL_PROF na " +#~ "neprázdný řetězec (zapne profilování) nebo na prázdnou hodnotu (povolí " +#~ "lepší optimalizace). Například GCL_PROF=t gcl@EXT@. Pokud je profilování " +#~ "zapnuto, dozvíte se o tom z úvodní obrazovky." + +#~ msgid "" +#~ "GCL is one of the oldest free common lisp systems still in use. Several " +#~ "production systems have used it for over a decade. The common lisp " +#~ "standard in effect when GCL was first released is known as \"Common Lisp, " +#~ "the Language\" (CLtL1) after a book by Steele of the same name providing " +#~ "this specification. Subsequently, a much expanded standard was adopted " +#~ "by the American National Standards Institute (ANSI), which is still " +#~ "considered the definitive common lisp language specification to this " +#~ "day. GCL is in the process of providing an ANSI compliant image in " +#~ "addition to its traditional CLtL1 image still in production use. Setting " +#~ "this variable will determine which image you will use by default on " +#~ "executing 'gcl'. You can locally override this choice by setting the " +#~ "GCL_ANSI environment variable to any non-empty string for the ANSI build, " +#~ "and to the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl. You " +#~ "may be interested in reviewing the ANSI test results sketching the level " +#~ "of compliance achieved thus far in /usr/share/doc/gcl/test_results.gz. " +#~ "The flavor of the build in force will be reported in the initial startup " +#~ "banner." +#~ msgstr "" +#~ "GCL je jedním z nejstarších svobodných systémů common lispu, který se " +#~ "dosud používá. Několik produkčních systémů jej používá déle než dekádu. " +#~ "Při prvním vydání GCL byl v platnosti standard common lispu známý jako " +#~ "\"Common Lisp, the Language\" (CLtL1) pojmenovaný podle Steelovy knihy " +#~ "stejného jména, která tento standard definovala. Americkým národním " +#~ "institutem pro standardizaci (ANSI) pak byl přijat podstatně rozšířený " +#~ "standard, který se do dnešní doby považuje za konečnou specifikaci common " +#~ "lispu. Kromě tradičního CLtL1 se GCL snaží nabídnout i verzi odpovídající " +#~ "ANSI standardu. Nastavením této proměnné určíte, jakým způsobem se má " +#~ "binárka 'gcl' chovat. Lokálně můžete toto nastavení přepsat nastavením " +#~ "proměnné prostředí GCL_ANSI na neprázdný řetězec (zapne ANSI chování) " +#~ "nebo na prázdnou hodnotu (zapne CLtL1 chování). Například GCL_ANSI-t gcl. " +#~ "Aktuálně vybraný standard bude zobrazen v úvodní obrazovce prostředí. " +#~ "Zajímavé může být porovnání dosud dosažené shody s ANSI standardem v " +#~ "souboru /usr/share/doc/gcl/test_results.gz." diff --git a/debian/po/da.po b/debian/po/da.po new file mode 100644 index 00000000..30cc0adb --- /dev/null +++ b/debian/po/da.po @@ -0,0 +1,109 @@ +# Danish translation gcl. +# Copyright (C) 2012 gcl & nedenstående oversættere. +# This file is distributed under the same license as the gcl package. +# Joe Hansen (joedalton2@yahoo.dk), 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2012-03-31 12:42+0000\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Brug den foreløbige ANSI bygget som standard?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Brug profileringen bygget som standard?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL er i gang med at tilbyde et ANSI-overholdende aftryk udover det " +#~ "traditionelle CLtL1-aftryk som stadig er i produktionsbrug." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Se venligst filen README.Debian for en kort beskrivelse af disse termer. " +#~ "Valg af denne indstilling vil bestemme hvilket aftryk som vil blive brugt " +#~ "som standard, når der køres »gcl@EXT@«." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Denne indstilling kan overskrives ved at angive miljøvariablen GCL_ANSI " +#~ "til enhver streng der ikke er tom for ANSI-bygningen, og til den tomme " +#~ "streng for CLtL1-bygningen, f.eks. GCL_ANSI=t gcl@EXT@. Den aktuelt " +#~ "tvungne byggevariant vil blive rapporteret i det oprindelige " +#~ "opstartsbanner." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL har valgfri understøttelse for profilering via gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Se venligst dokumentationen for si::gprof-start og si::gprof-quit for " +#~ "detaljer. Da denne bygning er langsommere end bygninger uden gprof-" +#~ "understøttelse, så anbefales den ikke for endelig produktionsbrug." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Angiv miljøvariablen GCL_PROF til den tomme streng for bedre optimerede " +#~ "bygninger, eller enhver streng der ikke er tom for " +#~ "profileringsunderstøttelse; f.eks. GCL_PROF=t gcl@EXT@. Hvis profilering " +#~ "er aktiveret, vil denne blive rapporteret i det oprindelige " +#~ "opstartsbanner." diff --git a/debian/po/de.po b/debian/po/de.po new file mode 100644 index 00000000..1a15c031 --- /dev/null +++ b/debian/po/de.po @@ -0,0 +1,126 @@ +# Translation of gcl debconf templates to German +# Copyright (C) Stefan Bauer , 2007. +# Copyright (C) Helge Kreutzmann , 2007, 2008, 2025. +# Copyright (C) 2024 Camm Maguire +# This file is distributed under the same license as the gcl package. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl 2.7.1-4\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2025-05-07 19:26+0200\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: de \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Standardmäßig den sich in Arbeit befindenden ANSI-Build verwenden?" + +# FIXME »no« both for the ANSI-Build and for the CLtL1 build? Sentence also strange +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" +"GCL arbeitet neben dem traditionellen CLtL1-Abbild für den Produktiveinsatz " +"zusätzlich an der Bereitstellung eines kompatiblen ANSI-Abbildes. Bitte " +"beachten Sie die README.Debian-Datei für eine kurze Beschreibung dieses " +"Themas. Durch diese Variable definieren Sie, welches Abbild voreingestellt " +"bei der Ausführung von gcl27 verwendet wird. Diese Auswahl kann lokal durch " +"jede Zeichenkette außer »no« für den ANSI-Bau und »no« für den CLtL1-Bau " +"außer Kraft gesetzt werden, z.B. GCL_ANSI=t gcl27. Die Variante des " +"geltenden Baus wird im einführenden Start-Banner berichtet." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Standardmäßig den Profiling-Build verwenden?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" +"GCL besitzt optionale Unterstützung für Profiling mit Gprof. Bitte lesen Sie " +"hierzu die Dokumentation von si::gprof-start und si::gprof-quit für " +"weiterführende Informationen. Da dieser Bau langsamer ist als ohne Gprof-" +"Unterstützung, wird dieser Weg nicht für den endgültigen produktiven Einsatz " +"empfohlen. Sie können die hier gemachten Angaben lokal über die GCL_PROF-" +"Umgebungsvariable durch einen beliebigen Wert ersetzen, bzw. durch einen " +"leeren Wert für den weitaus anpassungsfähigeren Bau, z.B. GCL_PROF=t gcl27. " +"Falls Profiling aktiviert ist, erfolgt eine Meldung im einführenden Start-" +"Banner." + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL ist derzeit dabei, zusätzlich zu dem noch im Einsatz befindlichen " +#~ "traditionellen CLtL1-Abbild ein ANSI-konformes Abbild bereitzustellen." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Bitte lesen Sie die Datei README.Debian fr eine kurze Beschreibung dieser " +#~ "Begriffe. Die Wahl dieser Option bestimmen, welches Image standardmig " +#~ "verwendet wird, wenn gcl@EXT@ ausgefhrt wird." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Diese Einstellung kann mit der Umgebungsvariablen GCL_ANSI berschrieben " +#~ "werden. Jede nicht-leere Zeichenkette führt zur ANSI-Erstellung, und die " +#~ "leere Zeichenkette fhrt zum CLtL1-Bau, z.B. GCL_ANSI=t gcl@EXT@. In der " +#~ "Startmeldung wird die derzeit erzwungene Bauart berichtet." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL besitzt optionale Untersttzung fr Profiling mittels Gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Bitte lesen Sie die Dokumentation für si::gprof-start und si::gprof-quit " +#~ "fr Details. Da ein solches Programm langsamer ist als ein Programm ohne " +#~ "Gprof-Untersttzung, wird dies fr den Produktiveinsatz nicht empfohlen." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Setzen Sie die Umgebungsvariable GCL_PROF auf die leere Zeichenkette, um " +#~ "ein optimiertes Programm zu erhalten oder auf irgendeine nicht-leere " +#~ "Zeichenkette, für Profiling-Untersttzung; z.B. GCL_PROF=t gcl@EXT@. Falls " +#~ "Profiling aktiviert ist, wird dies in der Startmeldung angezeigt." diff --git a/debian/po/es.po b/debian/po/es.po new file mode 100644 index 00000000..bc4f918e --- /dev/null +++ b/debian/po/es.po @@ -0,0 +1,197 @@ +# gcl po-debconf translation to Spanish +# Copyright (C) 2005, 2007, 2008 Software in the Public Interest +# Copyright (C) 2024 Camm Maguire +# This file is distributed under the same license as the gcl package. +# +# Changes: +# - Initial translation +# César Gómez Martín , 2005 +# +# - Updates +# Rudy Godoy Guillén , 2007 +# Francisco Javier Cuadrado , 2008 +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor, lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: gcl 2.7.1-7\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-10-06 13:08-0400\n" +"PO-Revision-Date: 2025-06-20 16:42+0200\n" +"Last-Translator: Camaleón \n" +"Language-Team: Debian l10n spanish \n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 2.4.2\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "" +"¿Quiere utilizar la generación ANSI todavía en desarrollo de manera " +"predeterminada?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the " +"README.Debian file for a brief description of these terms. Setting this " +"variable will determine which image you will use by default on executing " +"'gcl27'. You can locally override this choice by setting the GCL_ANSI " +"environment variable to any string but \"no\" for the ANSI build, and to " +"\"no\" for the CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build " +"in force will be reported in the initial startup banner." +msgstr "" +"GCL está en proceso de incorporar una imagen compatible con ANSI además de " +"la imagen CLtL1 tradicional que todavía se usa en producción. Consulte el " +"archivo README de Debian para una breve descripción acerca de estos " +"términos. El ajuste de esta variable determinará qué imagen se utilizará de " +"manera predeterminada cuando ejecute «gcl27». Puede anular esta elección " +"localmente definiendo la variable de entorno GCL_ANSI a cualquier cadena de " +"caracteres excepto «no» para la compilación ANSI, y establecerla a «no» para " +"la compilación CLtL1, p. ej. GCL_ANSI=t gcl27. La versión de la compilación " +"se indicará en el anuncio inicial de arranque." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "¿Quiere utilizar la generación con perfilado de manera predeterminada?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, " +"e.g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in " +"the initial startup banner." +msgstr "" +"GCL ahora dispone de soporte opcional para perfilado a través de gprof. " +"Consulte la documentación de «si::gprof-start» y de «si::gprof-quit» y " +"«si::gprof-quit» para más detalles. Dado que esta compilación es más lenta " +"que otras sin soporte para gprof, no se recomienda usarlo en producción. " +"Puede anular esta elección de forma local definiendo la variable de entorno " +"GCL_PROF a cualquier cadena de caracteres no vacía para activar el soporte " +"de perfilado y a una cadena de caracteres vacía para generar paquetes más " +"optimizados, p. ej., GCL_PROF=t gcl27. Si el perfilado está activo, se " +"indicará en el anuncio inicial de arranque." + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GL está en el proceso de proporcionar una imagen ANSI, además de su " +#~ "imagen CLtL1 tradicional que todavía se usa." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Por favor, véase el archivo README.Debian para una descripción corta de " +#~ "estos términos. Eligiendo esta opción determinará que imagen se usará de " +#~ "manera predeterminada al ejecutar «gcl@EXT@»." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Esta configuración se puede sobrescribir cambiando la variable de entorno " +#~ "GCL_ANSI a cualquier cadena de caracteres no vacía para la generación " +#~ "ANSI, y a una cadena de caracteres vacía para la generación CLtL1, por " +#~ "ejemplo: «GCL_ANSI=t gcl@EXT@». El actual tipo de generación se mostrará " +#~ "en la información inicial del arranque." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL permite usar «profiling», de manera opcional, mediante gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Por favor, véase la documentación para los detalles de «si::gprof-start» " +#~ "y «si::gprof-quit». Ya que esta generación es más lenta que sin el uso de " +#~ "gprof, no se recomienda para su uso final." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Cambie el valor de la variable de entorno GCL_PROF a una cadena de " +#~ "caracteres vacía para generación más optimizadas, o a una cadena de " +#~ "caracteres no vacía para usar el «profiling», por ejemplo: «GCL_PROF=t " +#~ "gcl@EXT@». Si el «profiling» está activado, se mostrará en la información " +#~ "inicial del arranque." + +#~ msgid "" +#~ "GCL is one of the oldest free common lisp systems still in use. Several " +#~ "production systems have used it for over a decade. The common lisp " +#~ "standard in effect when GCL was first released is known as \"Common Lisp, " +#~ "the Language\" (CLtL1) after a book by Steele of the same name providing " +#~ "this specification. Subsequently, a much expanded standard was adopted " +#~ "by the American National Standards Institute (ANSI), which is still " +#~ "considered the definitive common lisp language specification to this " +#~ "day. GCL is in the process of providing an ANSI compliant image in " +#~ "addition to its traditional CLtL1 image still in production use. Setting " +#~ "this variable will determine which image you will use by default on " +#~ "executing 'gcl'. You can locally override this choice by setting the " +#~ "GCL_ANSI environment variable to any non-empty string for the ANSI build, " +#~ "and to the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl. You " +#~ "may be interested in reviewing the ANSI test results sketching the level " +#~ "of compliance achieved thus far in /usr/share/doc/gcl/test_results.gz. " +#~ "The flavor of the build in force will be reported in the initial startup " +#~ "banner." +#~ msgstr "" +#~ "GCL es uno de los sistemas libres de «common lisp» más antiguos que " +#~ "todavía se usan. Varios sistemas en producción han estado usándolo " +#~ "durante más de una década. Cuando GCL se liberó por primera vez, el " +#~ "estándar «common lisp» se conocía como «Common Lisp, the Language» " +#~ "(CLtL1) después de un libro escrito por Steele que llevaba el mismo " +#~ "nombre y que proporcionaba esta especificación. Posteriormente se adoptó " +#~ "en el Instituto Nacional de Estándares Americano (ANSI) un estándar más " +#~ "extendido, que todavía se considera la especificación definitiva del " +#~ "lenguaje «common lisp» hasta hoy. GCL está en el proceso de proporcionar " +#~ "una imagen conforme a ANSI además de su imagen CltL1 tradicional que " +#~ "todavía se usa en producción. Al establecer esta variable se determinará " +#~ "la imagen por omisión que usará al ejecutar «gcl». Puede anular esta " +#~ "elección de forma local mediante el establecimiento de la variable de " +#~ "entorno GCL_ANSI a cualquier cadena no vacía para el paquete ANSI, y a la " +#~ "cadena vacía para el paquete CLtL1, i.e. GCL_ANSI=t gcl. Quizás esté " +#~ "interesado en revisar los resultados de las pruebas ANSI describiendo el " +#~ "nivel de conformidad logrado hasta ahora en /usr/share/doc/gcl/" +#~ "test_results.gz. Se informará del tipo de paquete usado en el anuncio " +#~ "inicial de arranque." diff --git a/debian/po/fi.po b/debian/po/fi.po new file mode 100644 index 00000000..4eac1a7b --- /dev/null +++ b/debian/po/fi.po @@ -0,0 +1,105 @@ +msgid "" +msgstr "" +"Project-Id-Version: gcl\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2007-12-29 23:28+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: Finland\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Käytetäänkö kehitettävää ANSI-käännöstä oletuksena?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Käytetäänkö profilointia oletuksena?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL:n on tarkoitus tarjota ANSI-yhteensopiva kuva perinteisen, vielä " +#~ "tuotantokäytössä olevan CLtL1-kuvan lisäksi." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Tiedostosta README.Debian löytyy (englanniksi) näiden termien lyhyet " +#~ "kuvaukset. Tämä valinta vaikuttaa siihen mitä kuvaa käytetään oletuksena " +#~ "ajettaessa ”gcl@EXT@”." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Tämä asetus voidaan ohittaa asettamalla GCL_ANSI-ympäristömuuttuja. Jos " +#~ "muuttujan arvo on mikä tahansa ei-tyhjä merkkijono, käytetään ANSI-" +#~ "käännöstä, ja jos muuttujan arvo on tyhjä merkkijono, käytetään CLtL1-" +#~ "käännöstä. Esimerkiksi: GCL_ANSI=t gcl@EXT@. Käytetty pakotettu " +#~ "käännöstapa raportoidaan käynnistysruudussa." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL tukee valinnaisesti profilointia gprofin avulla." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Katso yksityiskohdat (englanniksi) dokumentaatiosta kohdista si::gprof-" +#~ "start ja si::gprof-quit. Koska tämä käännös on hitaampi kuin käännökset " +#~ "ilman gprof-tukea, tätä ei suositella tuotantokäyttöön." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Aseta GCL_PROF-ympäristömuuttuja tyhjäksi merkkijonoksi käyttääksesi " +#~ "optimoidumpia käännöksiä ja miksi tahansa ei-tyhjäksi merkkijonoksi " +#~ "käyttääksesi profilointia. Esimerkiksi: GCL_PROF=t gcl@EXT@. Jos " +#~ "profilointi on aktivoituna, se raportoidaan käynnistysruudussa." diff --git a/debian/po/fr.po b/debian/po/fr.po new file mode 100644 index 00000000..b6f8b1e0 --- /dev/null +++ b/debian/po/fr.po @@ -0,0 +1,148 @@ +# Translation of gcl debconf templates to French +# Copyright (C) 2007 Sylvain Archenault +# Copyright (C) 2024 Camm Maguire +# This file is distributed under the same license as the iodine package. +# +# Sylvain Archenault , 2007. +msgid "" +msgstr "" +"Project-Id-Version: gcl 2.6.7-1\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2007-12-23 13:03+0100\n" +"Last-Translator: Sylvain Archenault \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Faut-il utiliser la compilation ANSI par dfaut?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +#, fuzzy +#| msgid "" +#| "GCL is in the process of providing an ANSI compliant image in addition to " +#| "its traditional CLtL1 image still in production use. Please see the " +#| "README.Debian file for a brief description of these terms. Setting this " +#| "variable will determine which image you will use by default on executing " +#| "'gcl@EXT@'. You can locally override this choice by setting the GCL_ANSI " +#| "environment variable to any non-empty string for the ANSI build, and to " +#| "the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The " +#| "flavor of the build in force will be reported in the initial startup " +#| "banner." +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" +"GCL a pour but de fournir une image conforme la dfinition de l'ANSI en plus " +"de son image traditionnelle CLtL1 qui est toujours utilise en production. " +"Veuillez consulter le fichier README.Debian pour plus d'informations sur ces " +"normes. Ce choix dterminera quelle norme vous allez utiliser par dfaut lors " +"de l'excution de gcl@EXT@. Vous pouvez localement modifier ce choix en " +"affectant une chane non vide la variable d'environnement GCL_ANSI pour une " +"compilation respectant la norme dfinie par l'ANSI, et une chane vide pour " +"une compilation en accord avec la norme CLtL1, par exemple GCL_ANSI=t " +"gcl@EXT@. Le type de compilation sera affich dans le bandeau de dmarrage." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Faut-il utiliser le profilage par dfaut?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +#, fuzzy +#| msgid "" +#| "GCL now has optional support for profiling via gprof. Please see the " +#| "documentation for si::gprof-start and si::gprof-quit for details. As this " +#| "build is slower than builds without gprof support, it is not recommended " +#| "for final production use. You can locally override the default choice " +#| "made here by setting the GCL_PROF environment variable to any non-empty " +#| "string for profiling support, and to the empty string for the more " +#| "optimized builds, e.g. GCL_PROF=t gcl@EXT@. If profiling is enabled, " +#| "this will be reported in the initial startup banner." +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" +"GCL gre dsormais le profilage via gprof. Veuillez consulter la documentation " +"de si::gprof-start et de si::gprof-quit pour plus d'informations. La " +"construction produite avec cette option est plus lente que la construction " +"classique. Par consquent il n'est pas recommand de l'utiliser en production. " +"Vous pouvez localement modifier ce choix en affectant la variable " +"d'environnement GCL_PROF, une chane non vide pour activer le profilage, ou " +"une chane vide pour une compilation optimise, par exemple GCL_PROF=t " +"gcl@EXT@. Si le profilage est activ, cela sera affich dans le bandeau de " +"dmarrage." + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL est en passe de fournir une image respectant la norme ANSI en plus de " +#~ "l'image traditionnelle CLtL1, toujours utilise en production." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Veuillez lire le fichier README.Debian pour une brve description de ces " +#~ "termes. Le choix de cette option dterminera quelle image sera utilise par " +#~ "dfaut en excutant gcl@EXT@." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Ce rglage peut tre chang en affectant la variable d'environnement " +#~ "GCL_ANSI une chane non vide pour la compilation ANSI, et une chane vide " +#~ "pour la compilation CLtL1, par exemple GCL_ANSI=t gcl@EXT@. Le type de " +#~ "compilation sera affich dans le bandeau de dmarrage." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL permet optionnellement la gestion du profilage via gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Veuillez vous reporter la documentation de si::gprof-start et si::gprof-" +#~ "quit pour plus de dtails. Comme cet excutable est plus lent que les " +#~ "excutables sans la gestion de gprof, il n'est pas recommand de l'utiliser " +#~ "en production." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Veuillez affecter une chane vide la variable d'environnement GCL_PROF " +#~ "pour des compilations optimises, ou une chane non vide pour avoir la " +#~ "gestion du profilage; par exemple GCL_PROF=t gcl@EXT@. Si le profilage " +#~ "est activ, cela sera affich dans le bandeau de dmarrage." diff --git a/debian/po/gl.po b/debian/po/gl.po new file mode 100644 index 00000000..afcf35c9 --- /dev/null +++ b/debian/po/gl.po @@ -0,0 +1,147 @@ +# Galician translation of gclcvs's debconf templates +# This file is distributed under the same license as the gclcvs package. +# Jacobo Tarrio , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: gclcvs\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2008-01-01 13:38+0000\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "¿Empregar por defecto a versión ANSI que se está a facer?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +#, fuzzy +#| msgid "" +#| "GCL is in the process of providing an ANSI compliant image in addition to " +#| "its traditional CLtL1 image still in production use. Please see the " +#| "README.Debian file for a brief description of these terms. Setting this " +#| "variable will determine which image you will use by default on executing " +#| "'gcl@EXT@'. You can locally override this choice by setting the GCL_ANSI " +#| "environment variable to any non-empty string for the ANSI build, and to " +#| "the empty string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The " +#| "flavor of the build in force will be reported in the initial startup " +#| "banner." +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" +"Estase a traballar para que GCL forneza unha imaxe ANSI ademáis da imaxe " +"CLtL1 que aínda se emprega en produción. Consulte o ficheiro README.Debian " +"para ver unha descrición breve deses termos. Ao estabrecer esa variable ha " +"determinar a imaxe que ha empregar por defecto ao executar \"gcl@EXT@\". " +"Pode empregar a outra imaxe estabrecendo a variable de ambiente GCL_ANSI a " +"calquera cadea non baleira para empregar a versión ANSI, e á cadea baleira " +"para empregar a versión CLtL1; por exemplo, GCL_ANSI=t gcl@EXT@. Hase " +"informar da versión en uso no cartel que aparece ao iniciar o programa." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "¿Empregar por defecto a versión con cronometrado?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +#, fuzzy +#| msgid "" +#| "GCL now has optional support for profiling via gprof. Please see the " +#| "documentation for si::gprof-start and si::gprof-quit for details. As this " +#| "build is slower than builds without gprof support, it is not recommended " +#| "for final production use. You can locally override the default choice " +#| "made here by setting the GCL_PROF environment variable to any non-empty " +#| "string for profiling support, and to the empty string for the more " +#| "optimized builds, e.g. GCL_PROF=t gcl@EXT@. If profiling is enabled, " +#| "this will be reported in the initial startup banner." +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" +"GCL agora ten soporte opcional de cronometrado mediante gprof. Consulte a " +"documentación de si::gprof-start e si::gprof-quit para máis detalles. Xa que " +"esta versión é máis lenta que as que non teñen soporte de gprof, non se " +"recomenda que a empregue para o uso en produción. Pode empregar unha versión " +"distinta á seleccionada estabrecendo a variable de ambiente GCL_PROF a " +"calquera cadea non baleira para empregar o soporte de cronometrado, ou á " +"cadea baleira para as versións máis optimizadas; por exemplo, GCL_PROF=t " +"gcl@EXT@. Se está activado o cronometrado, hase informar diso no cartel que " +"aparece ao iniciar o programa." + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "Estase a traballar para que GCL forneza unha imaxe ANSI ademáis da imaxe " +#~ "CLtL1 que aínda se emprega en produción." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Consulte o ficheiro README.Debian para ver unha descrición breve deses " +#~ "termos. Ao establecer esa variable ha determinar a imaxe que ha empregar " +#~ "por defecto ao executar \"gcl@EXT@\"." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Pode empregar a outra imaxe establecendo a variable de ambiente GCL_ANSI " +#~ "a calquera cadea non baleira para empregar a versión ANSI, e á cadea " +#~ "baleira para empregar a versión CLtL1; por exemplo, GCL_ANSI=t gcl@EXT@. " +#~ "Hase informar da versión en uso no cartel que aparece ao iniciar o " +#~ "programa." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL agora ten soporte opcional de cronometrado mediante gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Consulte a documentación de si::gprof-start e si::gprof-quit para máis " +#~ "detalles. Xa que esta versión é máis lenta que as que non teñen soporte " +#~ "de gprof, non se recomenda que a empregue para o uso en produción." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Pode empregar unha versión distinta á seleccionada establecendo a " +#~ "variable de ambiente GCL_PROF a calquera cadea non baleira para empregar " +#~ "o soporte de cronometrado, ou á cadea baleira para as versións máis " +#~ "optimizadas; por exemplo, GCL_PROF=t gcl@EXT@. Se está activado o " +#~ "cronometrado, hase informar diso no cartel que aparece ao iniciar o " +#~ "programa." diff --git a/debian/po/in.POTFILES.in b/debian/po/in.POTFILES.in new file mode 100644 index 00000000..f8a5ae13 --- /dev/null +++ b/debian/po/in.POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] gcl@EXT@.templates diff --git a/debian/po/it.po b/debian/po/it.po new file mode 100644 index 00000000..0f99efac --- /dev/null +++ b/debian/po/it.po @@ -0,0 +1,112 @@ +# ITALIAN TRANSLATION OF GCL'S PO-DEBCONF FILE. +# COPYRIGHT (C) 2009 THE GCL'S COPYRIGHT HOLDER +# This file is distributed under the same license as the gcl package. +# +# Vincenzo Campanella , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2009-11-29 08:39+0100\n" +"Last-Translator: Vincenzo Campanella \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "" +"Usare in modo predefinito la compilazione ANSI, che è in fase di " +"approntamento?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Usare il profiling in modo predefinito?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "Accanto all'immagine tradizionale CLtL1, in uso in realtà produttive, GCL " +#~ "sta preparando un'immagine conforme ad ANSI." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Per maggiori informazioni consultare il file «README.Debian». La scelta " +#~ "di questa opzione determinerà quale immagine verrà utilizzata in modo " +#~ "predefinito durante l'esecuzione di «gcl@EXT@»." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Questa impostazione può essere sovrascritta impostando la variabile " +#~ "d'ambiente «GCL_ANSI» con una stringa non vuota per la compilazione ANSI " +#~ "e con una stringa vuota per la compilazione CLtL1, per esempio: " +#~ "«GCL_ANSI=t gcl@EXT@». Il tipo di compilazione attualmente in uso viene " +#~ "mostrato nella schermata di avvio." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL possiede un supporto opzionale per il profiling tramite gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Per maggiori dettagli consultare la documentazione per «si::gprof-start» " +#~ "e «si::gprof-quit». Poiché questa compilazione è più lenta, rispetto a " +#~ "quella senza supporto per gprof, non è raccomandata per un utilizzo in " +#~ "realtà produttive." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Per compilazioni ottimizzate impostare la variabile d'ambiente «GCL_PROF» " +#~ "a una stringa vuota, oppure per impostare il supporto al profiling " +#~ "impostarla a una stringa non vuota, per esempio «GCL_PROF=t gcl@EXT@». La " +#~ "schermata d'avvio indicherà se il profiling è abilitato." diff --git a/debian/po/ja.po b/debian/po/ja.po new file mode 100644 index 00000000..58341948 --- /dev/null +++ b/debian/po/ja.po @@ -0,0 +1,107 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the gcl package. +# victory , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2013-07-27 23:28+0900\n" +"Last-Translator: victory \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "未完成の ANSI ビルドをデフォルトで使用しますか?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "デフォルトで profiling ビルドを使いますか?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL は未だに生産利用されている従来の CLtL1 イメージに加えて ANSI 準拠のイ" +#~ "メージを提供する過程にあります。" + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "用語については README.Debian ファイルに簡単な説明があります。このオプショ" +#~ "ンの選択「gcl@EXT@」を実行するときにどのイメージをデフォルトで利用するのか" +#~ "決定することになります。" + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "この設定は、GCL_ANSI 環境変数に ANSI ビルドでは空白ではない任意の文字列、" +#~ "CLtL1 ビルドでは空白文字列をセットすることで上書きできます。例えば " +#~ "GCL_ANSI=t gcl@EXT@。現在実行しているビルドの種類は初期の開始時バナーで報" +#~ "告されます。" + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL にはオプションで gprof 経由の profiling サポートがあります。" + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "詳細については si::gprof-start や si::gprof-quit の文書を見てください。こ" +#~ "のビルドは gprof サポートのないビルドより遅いため、最終的な生産利用にはお" +#~ "勧めしません。" + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "ビルドをもっと最適化する場合は GCL_PROF 環境変数に空白文字列を、profiling " +#~ "をサポートさせる場合は空白ではない任意の文字列をセットしてください。例え" +#~ "ば GCL_PROF=t gcl@EXT@。profiling が有効な場合、初期の開始時バナーで報告さ" +#~ "れます。" diff --git a/debian/po/nl.po b/debian/po/nl.po new file mode 100644 index 00000000..324ec90c --- /dev/null +++ b/debian/po/nl.po @@ -0,0 +1,80 @@ +# Dutch translation of gcl27 debconf templates. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# Copyright (C) 2024 Camm Maguire +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# Frans Spiesschaert , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl27_2.7.1-4\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2025-05-12 23:27+0200\n" +"Last-Translator: Frans Spiesschaert \n" +"Language-Team: debian-l10n-dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.2.2\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Wilt u standaard de in-ontwikkeling-zijnde ansi-compilatie gebruiken?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" +"GCL is bezig met het aanbieden van een ANSI-conform image naast zijn " +"traditioneel CLtL1-image dat nog steeds in een productieomgeving wordt " +"gebruikt. Raadpleeg het bestand README.Debian voor een korte beschrijving " +"van deze termen. Door deze variabele in te stellen, bepaalt u welk image u " +"standaard gebruikt bij het uitvoeren van 'gcl27'. U kunt deze keuze lokaal " +"overschrijven door de omgevingsvariabele GCL_ANSI in te stellen op een " +"willekeurige tekenreeks, behalve op 'no' voor de ANSI-compilatie en op 'no' " +"voor de CLtL1-compilatie, bijvoorbeeld GCL_ANSI=t gcl27. Welke de van kracht " +"zijnde compilatievorm is, zal worden gerapporteerd in de initiële " +"opstartbanner." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "" +"Wilt u standaard een compilatie met ondersteuning voor profilering gebruiken?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" +"GCL biedt nu optionele ondersteuning voor profilering via gprof. Raadpleeg " +"de documentatie bij si::gprof-start en si::gprof-quit voor meer informatie. " +"Omdat deze compilatie trager is dan een compilatie zonder gprof-" +"ondersteuning, wordt deze niet aanbevolen voor het uiteindelijke gebruik in " +"een productieomgeving. U kunt de hier gemaakte standaardkeuze lokaal " +"overschrijven door de omgevingsvariabele GCL_PROF in te stellen op een niet-" +"lege tekenreeks voor profileringsondersteuning, en op de lege tekenreeks " +"voor de meer geoptimaliseerde compilatie, bijvoorbeeld GCL_PROF=t gcl27. Als " +"profilering is ingeschakeld, wordt dit vermeld in de initiële opstartbanner." diff --git a/debian/po/pt.po b/debian/po/pt.po new file mode 100644 index 00000000..95dbdab2 --- /dev/null +++ b/debian/po/pt.po @@ -0,0 +1,129 @@ +# translation of gcl debconf to European Portuguese +# Copyright (C) 2024 Camm Maguire +# This file is distributed under the same license as the gcl package. +# +# Américo Monteiro , 2007 - 2025. +msgid "" +msgstr "" +"Project-Id-Version: gcl 2.7.1-4\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2025-05-07 21:40+0100\n" +"Last-Translator: Américo Monteiro \n" +"Language-Team: Portuguese <>\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 22.12.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Usar a compilação ainda-em-desenvolvimento ANSI por predefinição?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" +"GCL está no processo de disponibilizar uma imagem compatível com ANSI " +"adicionalmente à sua imagem tradicional CLtL1 ainda em utilização de " +"produção. Por favor veja o ficheiro README.Debian para uma breve descrição " +"destes termos. Definir esta variável irá determinar qual imagem você irá " +"usar por predefinição ao executar o 'gcl27'. Você pode sobrepor localmente " +"esta opção ao regular a variável de ambiente GCL_ANSI para qualquer string " +"diferente de \"no\" para a compilação ANSI, e para \"no\" para a compilação " +"CLtL1, ex. GCL_ANSI=t gcl27. O tipo de compilação imposto será reportado no " +"banner inicial de arranque." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Usar a compilação com perfis (profiling) como predefinição?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" +"O GCL agora tem suporte opcional para perfis via gprof. Por favor veja a " +"documentação para si::gprof-start e si::gprof-quit para detalhes. Como esta " +"compilação é mais lenta que as compilações sem suporte a gprof, não é " +"recomendada para utilização de produção final. Você pode sobrepor localmente " +"a escolha predefinida feita aqui ao definir a variável de ambiente GCL_PROF " +"para qualquer string não vazia para suporte a perfis, e para uma string " +"vazia para as compilações mais otimizadas, ex. GCL_PROF=t gcl27. Se os " +"perfis estiverem activos, isso será reportado no banner inicial de arranque." + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL está no processo de disponibilizar uma imagem compatível com ANSI " +#~ "como adição à sua imagem tradicional CLtL1 ainda em utilização de " +#~ "produção." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Por favor veja o ficheiro README.Debian para uma breve descrição destes " +#~ "termos. Escolher esta opção irá determinar qual imagem será usada por " +#~ "prédefinição ao executar 'gcl@EXT@'." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Esta opção pode ser sobreposta ao regular a variável de ambiente GCL_ANSI " +#~ "para qualquer string não-vazia para a compilação ANSI, e para uma string " +#~ "vazia para a compilação CLtL1, como por exemplo GCL_ANSI=t gcl@EXT@. O " +#~ "tipo de compilação actualmente imposto será reportado no banner inicial " +#~ "de arranque." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "O GCL tem suporte opcional para 'profiling' via gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Por favor veja a documentação de si::gprof-start e si::gprof-quit para " +#~ "mais detalhes. Como esta compilação é mais lenta do que as compilações " +#~ "sem o suporte para gprof, não é recomendada para utilização de produção " +#~ "final." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Regule a variável de ambiente GCL_PROF para uma string vazia para mais " +#~ "compilações optimizadas, ou para qualquer string não-vazia para suporte " +#~ "de 'profiling'; como por exemplo GCL_PROF=t gcl@EXT@. Se o 'profiling' " +#~ "estiver activo, isto será reportado no banner inicial de arranque." diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po new file mode 100644 index 00000000..57caf152 --- /dev/null +++ b/debian/po/pt_BR.po @@ -0,0 +1,109 @@ +# Debconf translations for gcl. +# Copyright (C) 2016 THE gcl'S COPYRIGHT HOLDER +# This file is distributed under the same license as the gcl package. +# Adriano Rafael Gomes , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: gcl\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2016-01-05 11:09-0200\n" +"Last-Translator: Adriano Rafael Gomes \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Usar a versão ANSI em desenvolvimento por padrão?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Usar a versão de \"profiling\" por padrão?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "O GCL está em processo de fornecer uma imagem de acordo com o padrão ANSI " +#~ "em adição à sua imagem CLtL1 tradicional, ainda em uso em produção." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Por favor, veja o arquivo README.Debian para uma breve descrição desses " +#~ "termos. Escolher essa opção determinará qual imagem será usada por padrão " +#~ "ao executar \"gcl@EXT@\"." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Essa configuração pode ser sobreposta definindo a variável de ambiente " +#~ "GCL_ANSI para qualquer texto não vazio para a versão ANSI, e para um " +#~ "texto vazio para a versão CLtL1, por exemplo, GCL_ANSI=t gcl@EXT@. O " +#~ "sabor da versão atualmente definida será exibida na mensagem de " +#~ "inicialização." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "O GCL tem suporte opcional a \"profiling\" via gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Por favor, veja a documentação para si::gprof-start e si::gprof-quit para " +#~ "detalhes. Como essa versão é mais lenta que versões sem suporte a gprof, " +#~ "ela não é recomendada para uso final em produção." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Defina a variável de ambiente GCL_PROF para um texto vazio para versões " +#~ "mais otimizadas, ou para qualquer texto não vazio para ter suporte a " +#~ "\"profiling\"; por exemplo, GCL_PROF=t gcl@EXT@. Se o \"profiling\" " +#~ "estiver habilitado, isso será exibido na mensagem de inicialização." diff --git a/debian/po/ru.po b/debian/po/ru.po new file mode 100644 index 00000000..6e8f75f0 --- /dev/null +++ b/debian/po/ru.po @@ -0,0 +1,111 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# Copyright (C) 2024 Camm Maguire +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: 2.6.7-36\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2008-01-03 10:22+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Использовать разрабатываемую ANSI сборку по умолчанию?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Использовать по умолчанию профилируемую сборку?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "Помимо обычного образа CLtL1, используемого в повсеместной работе, GCL " +#~ "имеет практически готовый образ, соответствующий ANSI." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Краткое описание приведено в файле README.Debian. Данным выбором " +#~ "определяется, какой из образов будет использован по умолчанию при " +#~ "выполнении 'gcl@EXT@'." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Эта настройка может быть переопределена установкой переменной окружения " +#~ "GCL_ANSI в непустое значение для ANSI сборки, а пустым значением " +#~ "выбирается CLtL1 сборка, например GCL_ANSI=t gcl@EXT@. Текущий " +#~ "используемый тип сборки будет показан при первом запуске." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL поддерживает необязательное профилирование через gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Подробней об этом смотрите в документации на si::gprof-start и si::gprof-" +#~ "quit. Так как данная сборка работает медленнее чем без поддержки gprof, " +#~ "её не рекомендуется использовать в реальной работе." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Задание переменной окружения GCL_PROF пустого значения включает более " +#~ "оптимизированную сборку, а любое непустое -- поддержку профилирования; " +#~ "например GCL_PROF=t gcl@EXT@. Если профилирование включено, то об этом " +#~ "будет написано при первом запуске." diff --git a/debian/po/sv.po b/debian/po/sv.po new file mode 100644 index 00000000..e08465ef --- /dev/null +++ b/debian/po/sv.po @@ -0,0 +1,78 @@ +# Translation of gcl27 debconf template to Swedish +# Copyright (C) 2025 Martin Bagge +# This file is distributed under the same license as the XX package. +# +# Martin Ågren , 2008. +# Martin Bagge , 2025. +msgid "" +msgstr "" +"Project-Id-Version: gcl_2.6.7-36.1_sv\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-10-06 13:08-0400\n" +"PO-Revision-Date: 2025-12-12 13:47+0100\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: emacs\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Använd det ännu inte färdiga ANSI-bygget som standard?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the " +"README.Debian file for a brief description of these terms. Setting this " +"variable will determine which image you will use by default on executing " +"'gcl27'. You can locally override this choice by setting the GCL_ANSI " +"environment variable to any string but \"no\" for the ANSI build, and to " +"\"no\" for the CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build " +"in force will be reported in the initial startup banner." +msgstr "" +"GCL arbetar på att tillhandahålla en ANSI-kompatibel avbildning utöver den " +"traditionella CLtL1-avbildningen som alltjämt används i produktionsmiljö. " +"Läs filen README.Debian för en kort beskrivning av dessa termer. Genom detta " +"val bestäms vilken avbildning som används som standard när 'gcl27' " +"exekveras. Du kan fortfarande göra lokala undantag från detta val genom att " +"sätta miljövariabeln GCL_ANSI till en annan sträng än \"no\" för att få ANSI-" +"avbildningen eller ange \"no\" för att få CLtL1-avbildningen. Alltså " +"GCL_ANSI=t gcl27. Vilken avbildning som används uppges i utskriften vid " +"uppstarten." + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Ska profilering användas som standard?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, " +"e.g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in " +"the initial startup banner." +msgstr "" +"GCL har numera möjlighet att utföra profilering med hjälp av gprof. Läs mer " +"i dokumentationen om si::gprof-start och si::gprof-quit för närmare " +"information. Eftersom denna typ av bygge är långsammare än utan stöd för " +"gprof är rekommendationen att inte använda det för i produktionsmiljön. Du " +"kan göra lokala undantag från standardvalet här genom att sätta " +"miljövariablen GCL_PROF till en sträng som inte är tom för att få " +"profilering aktiverat. Eller till tom sträng för ett mer optimerat bygge. " +"Exempelvis GCL_PROF=t gcl27. Om profilering är aktiverat kommer detta att " +"framgå i meddelandet vid start." diff --git a/debian/po/templates.pot b/debian/po/templates.pot new file mode 100644 index 00000000..f9e6e6ff --- /dev/null +++ b/debian/po/templates.pot @@ -0,0 +1,58 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the gcl27 package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: gcl27\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-10-06 13:08-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the " +"README.Debian file for a brief description of these terms. Setting this " +"variable will determine which image you will use by default on executing " +"'gcl27'. You can locally override this choice by setting the GCL_ANSI " +"environment variable to any string but \"no\" for the ANSI build, and to " +"\"no\" for the CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build " +"in force will be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, " +"e.g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in " +"the initial startup banner." +msgstr "" diff --git a/debian/po/vi.po b/debian/po/vi.po new file mode 100644 index 00000000..067273ef --- /dev/null +++ b/debian/po/vi.po @@ -0,0 +1,111 @@ +# Vietnamese translation for GCL. +# Copyright © 2007 Free Software Foundation, Inc. +# Copyright © 2024 Camm Maguire +# Clytie Siddall , 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: gcl 2.6.7-36\n" +"Report-Msgid-Bugs-To: gcl27@packages.debian.org\n" +"POT-Creation-Date: 2025-06-01 09:56-0400\n" +"PO-Revision-Date: 2008-01-04 16:27+1030\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b1\n" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "Use the work-in-progress ANSI build by default?" +msgstr "Dùng bản xây dựng đang phát triển ANSI theo mặc định không?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:1001 +msgid "" +"GCL is in the process of providing an ANSI compliant image in addition to " +"its traditional CLtL1 image still in production use. Please see the README." +"Debian file for a brief description of these terms. Setting this variable " +"will determine which image you will use by default on executing 'gcl27'. " +"You can locally override this choice by setting the GCL_ANSI environment " +"variable to any string but \"no\" for the ANSI build, and to \"no\" for the " +"CLtL1 build, e.g. GCL_ANSI=t gcl27. The flavor of the build in force will " +"be reported in the initial startup banner." +msgstr "" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "Use the profiling build by default?" +msgstr "Dùng bản xây dựng đo hiệu năng sử dụng theo mặc định không?" + +#. Type: boolean +#. Description +#: ../gcl27.templates:2001 +msgid "" +"GCL now has optional support for profiling via gprof. Please see the " +"documentation for si::gprof-start and si::gprof-quit for details. As this " +"build is slower than builds without gprof support, it is not recommended for " +"final production use. You can locally override the default choice made here " +"by setting the GCL_PROF environment variable to any non-empty string for " +"profiling support, and to the empty string for the more optimized builds, e." +"g. GCL_PROF=t gcl27. If profiling is enabled, this will be reported in the " +"initial startup banner." +msgstr "" + +#~ msgid "" +#~ "GCL is in the process of providing an ANSI compliant image in addition to " +#~ "its traditional CLtL1 image still in production use." +#~ msgstr "" +#~ "GCL đang phát triển chức năng cung cấp ảnh tùy theo ANSI thêm vào ảnh " +#~ "CLtL1 truyền thống vẫn còn được sử dụng trong trường hợp sản xuất." + +#~ msgid "" +#~ "Please see the README.Debian file for a brief description of these terms. " +#~ "Choosing this option will determine which image will be used by default " +#~ "when executing 'gcl@EXT@'." +#~ msgstr "" +#~ "Xem tài liệu Đọc Đi (README.Debian) để tìm mô tả ngắn về các thuật ngữ " +#~ "này. Bật tùy chọn này thì xác định ảnh nào cần dùng theo mặc định khi " +#~ "thực hiện lệnh « gcl@EXT@ »." + +#~ msgid "" +#~ "This setting may be overridden by setting the GCL_ANSI environment " +#~ "variable to any non-empty string for the ANSI build, and to the empty " +#~ "string for the CLtL1 build, e.g. GCL_ANSI=t gcl@EXT@. The currently " +#~ "enforced build flavor will be reported in the initial startup banner." +#~ msgstr "" +#~ "Vẫn còn có thể ghi đè lên thiết lập này bằng cách đặt biến môi trường " +#~ "« GCL_ANSI » thành bắt cứ chuỗi không rỗng cho bản xây dựng ANSI, và cho " +#~ "chuỗi rỗng cho bản xây dựng CLtL1, v.d. « GCL_ANSI=t gcl@EXT@ ». Kiểu bản " +#~ "xây dựng hiện thời được chọn sẽ được thông báo trên băng cờ khởi chạy đầu " +#~ "tiên." + +#~ msgid "GCL has optional support for profiling via gprof." +#~ msgstr "GCL có hỗ trợ tùy chọn để đo hiệu năng sử dụng thông qua gprof." + +#~ msgid "" +#~ "Please see the documentation for si::gprof-start and si::gprof-quit for " +#~ "details. As this build is slower than builds without gprof support, it is " +#~ "not recommended for final production use." +#~ msgstr "" +#~ "Xem tài liệu hướng dẫn về « si::gprof-start » và « si::gprof-quit » để " +#~ "tìm chi tiết. Vì bản xây dựng này chạy chậm hơn các bản xây dựng không hỗ " +#~ "trợ gprof, không khuyên bạn sử dụng nó trong trường hợp sản xuất cuối " +#~ "cùng." + +#~ msgid "" +#~ "Set the GCL_PROF environment variable to the empty string for more " +#~ "optimized builds, or any non-empty string for profiling support; e.g. " +#~ "GCL_PROF=t gcl@EXT@. If profiling is enabled, this will be reported in " +#~ "the initial startup banner." +#~ msgstr "" +#~ "Đặt biến môi trường « GCL_PROF » thành chuỗi rỗng cho các bản xây dựng " +#~ "tối ưu hơn, hoặc cho bất cứ chuỗi không rỗng nào để hỗ trợ chức năng đo " +#~ "hiệu năng sử dụng, v.d. « GCL_PROF=t gcl@EXT@ ». Hiệu lực chức năng đo " +#~ "hiệu năng sử dụng thì nó được thông báo trên băng cờ khởi chạy đầu tiên." diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..c69d933a --- /dev/null +++ b/debian/rules @@ -0,0 +1,210 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 by Joey Hess. +# GNU copyright 2024 Camm Maguire +# +# This version is for a hypothetical package that builds an +# architecture-dependant package, as well as an architecture-independent +# package. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +#export GCL_MEM_MULTIPLE=0.1 + +export FORCE_SOURCE_DATE=1 +export FORCE_TEXLIVE_BUILD=1 +export SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +NUMJOBS=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif +ifneq (,$(NUMJOBS)) +MAKEFLAGS+=-j $(NUMJOBS) -O +GCL_MULTIPROCESS_MEMORY_POOL?=$(shell pwd) +export GCL_MULTIPROCESS_MEMORY_POOL +endif + +# This is the debhelper compatability version to use. +ARCHT:=$(shell dpkg-architecture -qDEB_HOST_ARCH) + +MCC?=gcc +# ifeq ($(ARCHT),alpha) +# MCC:=gcc-4.6 +# endif + +CFLAGS_APPEND?= +ifeq ($(ARCHT),m68k) #gcc bug 20260316 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124569 +CFLAGS_APPEND:=$(CFLAGS_APPEND) -fno-auto-inc-dec +endif + +#ifeq ($(ARCHT),ppc64) +#CFLAGS_APPEND:=$(CFLAGS_APPEND) -O1 +#endif + +DEBUG?= +#ifeq ($(ARCHT),hppa) +#DEBUG=--enable-debug +#endif + +VERS=$(shell echo $$(cat majvers).$$(cat minvers)) +EXT=$(shell echo $(VERS) | sed 's,\([0-9]\)\.\([0-9]\)\..*,\1\2,') + +debian/elpa-gcl$(EXT).elpa: debian/gcl$(EXT)-pkg.el + find elisp -name "*.el" >$@ +# echo debian/gcl$(EXT).el >> debian/elpa-gcl$(EXT).elpa + echo debian/gcl$(EXT)-pkg.el >> debian/elpa-gcl$(EXT).elpa + echo debian/debian-autoloads.el >> debian/elpa-gcl$(EXT).elpa + +VR:=$(shell awk '{if (i) next;i=1;a=$$2;gsub("[()]","",a);split(a,A,"-");print A[1];}' debian/changelog) + +debian/gcl$(EXT)-pkg.el: debian/gcl-pkg.el.in + cat $< | sed "s,@VR@,$$(echo $(VR) | sed 's,[a-zA-Z]*,,g'),g" | sed "s,@EXT@,$(EXT),g" > $@ + + +configure-stamp: + + dh_testdir + + dh_autoreconf + + eval `dpkg-buildflags --export=sh` && \ + CC=$(MCC) CFLAGS="$$CFLAGS $(CFLAGS_APPEND)" ./configure \ + --host=$$(dpkg-architecture -qDEB_HOST_GNU_TYPE) \ + \ + $(DEBUG) \ + --prefix=/usr + + touch $@ + +build-stamp: configure-stamp + dh_testdir + $(MAKE) $(MAKEFLAGS) + $(MAKE) $(MAKEFLAGS) check + touch $@ + +build: build-arch build-indep +build-arch: build-stamp +build-indep: #build-stamp + touch $@ + +DOC_STUBS=gcl$(EXT) gcl$(EXT)-si gcl$(EXT)-tk gcl$(EXT)-dwdoc +DOC_FILES=$(addsuffix .info,$(DOC_STUBS)) +DOC_FILES+=$(addsuffix .dvi,$(DOC_STUBS)) +DOC_FILES+=$(addsuffix .pdf,$(DOC_STUBS)) +DOC_FILES+=$(addsuffix .html,$(DOC_STUBS)) +DOC_FFILES=$(addprefix info/,$(DOC_FILES)) +EXT_TARGS=$(DOC_FFILES) man/man1/gcl$(EXT).1 bin/gcl$(EXT) + +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_prep + $(MAKE) $(MAKEFLAGS) install-all DESTDIR=$$(pwd)/debian/tmp + $(MAKE) $(MAKEFLAGS) $(EXT_TARGS) + for i in $(EXT_TARGS); do \ + for j in $$i*; do \ + if [ -d $$j ] ; then l=d ; r=-r ; else l=f ; fi ; \ + k=$$(find debian/tmp -type $$l -name $$(echo $$(basename $$j) | sed 's,$(EXT),,g')); \ + [ "$$k" = "" ] || cp $$r $$j $$(dirname $$k) ; \ + echo $$i $$j $$k; \ + [ "$$k" = "" ] || chmod $$(dirname $$k)/$$(basename $$j) --reference=$$k ; \ + [ "$$k" = "" ] || rm $$r $$k ; \ + done ; \ + done + mv debian/tmp/usr/share/doc/gcl debian/tmp/usr/share/doc/gcl$(EXT) + touch $@ + +INS:=$(shell for i in `find debian -name "in.*"` ; do \ + echo $$i | sed 's,in.,,1' ; \ + done |\ + sed "s,\([^x]gcl\),\1$(EXT),g") + +gcl$(EXT)% : in.gcl% + cat $< | sed -e 's,@EXT@,$(EXT),g' -e 's,@VERS@,$(VERS),g' >$@ + +debian/po/POTFILES.in: debian/po/in.POTFILES.in + cat $< | sed -e 's,@EXT@,$(EXT),g' -e 's,@VERS@,$(VERS),g' >$@ + +debian/control: debian/control_$(EXT) + cp $< $@ + +install: DH_OPTIONS:= +install: install-stamp debian/control $(INS) + dh_installdirs + dh_install + +clean: debian/control debian/gcl$(EXT).templates debian/po/POTFILES.in + dh_testdir + dh_testroot + debconf-updatepo + + ! [ -e Makefile ] || $(MAKE) $(MAKEFLAGS) distclean + + dh_autoreconf_clean + dh_clean + + for i in $(INS); do echo $^ | grep -q $$i || rm -rf $$i ; done + rm -rf debian/substvars debian.upstream + rm -rf *stamp build-indep config.log + rm -f debian/elpa-gcl$(EXT).elpa debian/gcl$(EXT)-pkg.el + rm -rf $(EXT_TARGS) info/gcl$(EXT)*.info* gcl_pool + +debian-clean: debian/control debian/gcl$(EXT).templates debian/po/POTFILES.in + dh_testdir + dh_testroot + debconf-updatepo + + dh_clean + + for i in $(INS); do echo $^ | grep -q $$i || rm -rf $$i ; done + rm -rf debian/substvars debian.upstream + rm -rf *stamp build-indep config.log + rm -f debian/elpa-gcl$(EXT).elpa debian/gcl$(EXT)-pkg.el + rm -rf $(EXT_TARGS) info/gcl$(EXT)*.info* gcl_pool + + + +# Build architecture-independent files here. +# Pass -i to all debhelper commands in this target to reduce clutter. +binary-indep: DH_OPTIONS:=-i +binary-indep: build install debian/elpa-gcl$(EXT).elpa + dh_testdir + dh_testroot + dh_elpa + dh_installdocs + dh_installinfo + dh_installchangelogs ChangeLog + dh_link + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary-arch: DH_OPTIONS=-a +binary-arch: build install #debian/substvars + dh_testdir + dh_testroot + dh_installdocs + dh_installdebconf + sed -i -e 's,@EXT@,$(EXT),g' debian/gcl$(EXT)/DEBIAN/templates + dh_installchangelogs ChangeLog + dh_strip -Xlibgcl -Xlibansi_gcl -Xlibgcl_gprof -Xlibansi_gcl_gprof + dh_lintian + dh_link + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol -u"-Vgcc=$(MCC)" + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure +.PRECIOUS: configure-trad-stamp configure-ansi-stamp configure-gprof-stamp configure-ansi-gprof-stamp diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/include-binaries b/debian/source/include-binaries new file mode 100644 index 00000000..fc2f5b8d --- /dev/null +++ b/debian/source/include-binaries @@ -0,0 +1,6 @@ +info/gcl.pdf +info/gcl-si.pdf +info/gcl-tk.pdf +xgcl-2/dwdoc.pdf +info/gcl-si.info-2 +unixport/raw_pre_gcl diff --git a/debian/texi.awk b/debian/texi.awk new file mode 100755 index 00000000..ccf9cdbe --- /dev/null +++ b/debian/texi.awk @@ -0,0 +1,27 @@ +#!/usr/bin/awk -f + +/^@defun/ { + a=split($0,A,"("); + b=split($0,B,")"); + if (a==b) + print ; + else { + i=1; + c=$0; + } + next; +} +{ + if (i) { + sub("^ *",""); + c=c " " $0; + a=split(c,A,"("); + b=split(c,B,")"); + if (a==b) { + print c; + c=""; + i=0; + } + } else + print; +} diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc new file mode 100644 index 00000000..763a447b --- /dev/null +++ b/debian/upstream/signing-key.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEY72GEhYJKwYBBAHaRw8BAQdA0hMaElCclwaCCulgX4m8rDdHFFQvYsZlh01C +P5LGsOG0JUNhbW0gTWFndWlyZSA8Y2FtbUBtYWd1aXJlZmFtaWx5Lm9yZz6IjwQT +FggAOBYhBGp0ZZ8fIxkel/m2XhrylJS+USuuBQJjvYYSAhsDBQsJCAcDBRUKCQgL +BRYCAwEAAh4BAheAAAoJEBrylJS+USuub7AA+MkuPTCpVNVEQCwBTeiG8o3haoss +t5527jQZtAO4+zoBAL0VaTA+KFzVgWHEDoAybH2TC0DMnf75glwTmWg+PgoNuDgE +Y72GEhIKKwYBBAGXVQEFAQEHQC+wtP2/fnklVYfh7sP7KpkzLgFyOCNSMFY5mKjB +XfI5AwEIB4h4BBgWCAAgFiEEanRlnx8jGR6X+bZeGvKUlL5RK64FAmO9hhICGwwA +CgkQGvKUlL5RK64vIgD+LaehRHfaNaJEe4H9lbq1ocu11YABw66a5XsKvU6gXi4A +/A1jbf1vLz7JrvZQLAPQ/n8+E9ePART7zAoiqDWIEXAO +=bH2+ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..d2c16eb8 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=4 +options=pasv,pgpsigurlmangle=s/$/.sig/ http://ftp.gnu.org/pub/gnu/gcl/ gcl-([0-9.]*).tar.gz debian uupdate diff --git a/info/gcl-si.info-2 b/info/gcl-si.info-2 new file mode 100644 index 0000000000000000000000000000000000000000..93676383da75f57d4ce32840672e20c0d3f09da8 GIT binary patch literal 13791 zcmchd+iu%P5{Bn;pqJRboN}g zDM}_wUO9>oAdF#s`K!7PUEPcyvo(W1U+<>cIy=qg4~sw8a<#aBzDw`fmlrlm{*&fE zW#7`(I$O+H@6==utHrGN%2WD1J8iXM1xi>9Kgho@wj37SM6qz0?ZqPWxDzoqnLj7f zR*NxaEtW5!YvYr>1eo7RcaeZhXK*!=tH?zdU=vVKZu z%$|dgc`{wMgg4xUwf@!`Wz+Pc@CCY$d5e4a*>$qYk}uN~5clc#KNt&E>9-3udY<1s z<&G?VJXv0_c(H7?_;Q)f@3Zf0u=Cy4Nz zXR-z_OA{ZGyYv*l@Y^(-r|{VQJqLYBp6(v^(sI8i^LudoyudJ~KwVve?z9K#D_Ru= zIzL0uVz%5*qCmZl1l=c3$$n83=)8@fY_-=zdB77sLT9JnlIeaD1=7(+5Bn*w4kQRo zd))7!J)m<#`e>Scx!><5N>L9@n=X?3{nk++9ThF!ZCdYKnzojuLW4Y}K9r*KUJg2; z0R@~$TKx<`ZzB;P)|1N*b>}UbD3Bp@?Szk@1!&`erCs{|RTEVe-C_EW&9l5puAwGj z88J;XjeDLS^H?+?&`ShJ@ARd!c@Q`^lo&~hmg!xVOxb9$nyp!0;)(*kKFzz>J3eSv z*O1Y8G6)5~(uBtc4q+SR={7DIf_zW=#6!>a#!;=OC{Pzc7LSBB@|_`cSRPuJwVa|) z)-7321(9Xde|6h;kRN$jU$H9chqzcbaK$Y*uszF}422fOA-JYi*70;O9dp6*LBYWB ztt%}QkqEDA7n};=b^!v59HIH)(Dry}i`un5ooc0 zP86jGHyhw=H0`ok4!DC-q|#vrR3`^Ol%gKyRRMB%I2M{KTtB?gTnKVU3pQ&=fx5Dh zmZk+fzVx^&G)3MHYk!%pVDaZ)>$Lrtg3-ZVQy3P6{-|n78Pf8BG;DkEaUNhYR&A3N0D%$+i3papTmh;S*p@L0%V+_X(9~$Q1d5oFo`#dT@us-mHT~M zd~wa4z3rGCy&oHGlr!SdP|LHv*(k7$aFE`|A`PHeb8PR5Y{(R-gPtA<9#5cQkb=m> zS6irj7v_p6;^W2=OPgjIm>>4o^FyHt$PUU&CC$SR+a`|W5ow!;6 z%4*D%Ckpv~>>;}=3%?pNbqs6U8^W9qyOz-9aV&=Qfk`MbI=KA#D6cJ(r^hwr?%`r1 zqzrkb2*=(NdG--bf|%UfQHoRpxe_AK#{4fz&z^upA31guXyEDwFDp9;MP^@4VkeHz zhp<*ys~cqzpzb+VH3_;F;lPiGh>V_AX`(jaVVc}S2RK!2zoT-^nrq3? zYlzvCTc0NnON(wfh)CFoM~mn|z#W zTy{VaAk)ODrvj?&WKs|XYM-GZKZtGD{tLDrR1Kjjh=Eg20G^=>W3DNBnSEJI^Xatm zQHiheHGl~t)_5558^TFMQ0pdU2Z9DLjS(D1fS8&L5tNU02ZD;@1qHH0t9g?SKBDp! zt1N;u9_pfaojNQ<_k`NREnS?M_dc1Sr7#> zbSxqW3PKUbL?980x@VYc2nzYo{(PV!1MB{u69F6ied8XXsA#ew)M?+%s}Xgc<2}#5 zz~w_-t{G>z$AYtyp|&qWNN1~VEkVV$e*}H0*h_4Aj4+LLan&R!ngpsxN?M|o{nWCR}|ByOLSy29dj)T92?vM1A4Pz#Q=Jg;~Wz`17YJ0d6?hI z5VHs2nQj~7xdf3@3;}AJSUl8J2A5KBB?Uw9R?w7e@Zp|d}}jYNQSyuJDGZqsx__SX+@BN2*NUq<$aw~;6i-j&Gh5JaR4of__J zVJ>#<__euF`rqetewX5jJ72Am7ks=-){iXCuT_80@w=KFP#5&0t0qa9aX(L&A^QmG zis8n?(V~2NTko)+=dU)_%z^L2!IA!Yi!_e_wef~&10u~MKphMM1krM6XEWR;D-bD%2I(EydlkqD4|cZRtt`Lz^ZH`x6BD;hq2>6!q}xpajtYK!9}IpCBj_ zHI+Nh`r<=?)clX2&+qXOo*rA=abVUSPoS~HQA3r4{mHR!b329%YwMDS+Q251NFP~` z$tt;n7mTXI4W1(CcvdSx^1iUX@GDmno@TiA3Iy*!`A)8^A>Rl^YAYZ?BOi`7NJSI~ z_wN#Pc@w~E0nK_~j%fA~!xw@i$Q5uuM{y{SZpbaA1i{Sq4n=sZHS{O>y$a5cB8Y6q z_i7wYtXdD7+7`$YV;r1QQ>xM-9ozg)-4?OH=xA)Tee!vXX*T@e3|VB?bsNeizp%aA@(ht`8DWZ#}tCy zc}qy6Lyjv%hHoweE?;j4{)E~E9n&MYgDQlm<7UyYHpdjgWYkL`^2|H*EjWkC-2-F! zZ2-I1il}1>G0Ua-#O?Uj_ip*X4;wP@s6u4=7H{Hea9S?3iI=yiyxze(w0cQEA8O5l$4O5A*cH(8>}$`mE&=zUwg?W*JiJcPFo;1H%^CvkK+22K!;$nTEJ zx?k-ERVNYU-@r4w9T2pmF?Odah8)+rro3m_0Y#S(%QYlIQTt4$<}L`{#wt2yRTBYX z-HM{Xk8If+5AabJTO=wfK?nHAz}xH{&;dSTZ8?hUg8qLWbO^67SfB2Cp+sL_-7l36rRa2P~dl-RV@4efyER&+bc42lh@TYy*ma5&6OJ z#ILeQR5c<%I+n*Oh^R&c$W)-pY7>$OP^Txy{%VeH+V-mgNq~A-j2iZbg_DcFiB;2e IXtS;V0W!wPeE